Classe : 4 SI
Lycée Utique
Matière : Algorithme & programmation
Enseignant : Dkhil Aziza Date : Lundi 21 Novembre 2024 Durée : 1 H 30
Devoir de Contrôle N°2 (abscent)
Nom & Prénom : ……………………………………………………………… Num : ………… Note : ………… /20
Important :
• Toutes les ressources à utiliser se trouvent dans le répertoire Ressources situé sur la racine du disque C.
• Il est demandé au candidat :
o De créer, dans le répertoire Bac2025 situé sur la racine du disque C, un dossier de travail portant son
Nom&Prénom et dans lequel il doit enregistrer, au fur et à mesure, tous les fichiers solutions de ce sujet.
o De copier, dans son dossier de travail le fichier AlgoRessources1.rar situé dans C:\Ressources, puis
extraire son contenu, en utilisant le mot de passe AlGo1, dans ce même dossier de travail.
o D’élaborer une solution modulaire au problème posé.
o De vérifier à la fin de l’épreuve que tous les fichiers créés sont dans son dossier de travail.
Soit A une matrice de N*M entiers distincts, chaque ligne contient un seul maximum.
On désigne par colonne dominante d’une matrice, la colonne qui
contient le plus de maximums des lignes de cette matrice.
Exemple : Pour n=5 et m= 4 et la matrice A ci-contre, la colonne numéro
2 est la colonne dominante puisque parmi les 5 maximums des 5 lignes
il y a 3 maximums qui se trouvent dans la 2ème colonne.
Pour déterminer la colonne dominante de la matrice A, on se propose
d’appliquer la méthode suivante :
1- Créer et remplir un fichier d’enregistrement « Fmax.dat » à partir de la matrice A. Chaque
enregistrement du fichier contient les champs suivants :
• Vmax :la valeur du maximum d’une ligne de la matrice A.
• NL : le numéro de la ligne
• NC : le numéro de la colonne.
2- Parcourir le fichier « Fmax.dat » pour déterminer le numéro de la colonne dominante ainsi que
le nombre des maximums dans cette colonne.
Exemple : Pour la matrice A, le fichier « Fmax.dat » contiendra les enregistrements suivants :
Donc la colonne dominante est la colonne numéro 2, et le nombre de maximums est égal à 3
En disposant du fichier « mat.txt » on vous demande de créer l’application suivantes :
• Remplir une matrice A à partie du fichier « mat.txt »,
• Remplir le fichier « Fmax.dat » comme décrit ci-dessus,
• Afficher le numéro de colonne dominante ainsi que le nombre de maximum dans cette colonne :
Travail demandé :
1- Compléter l’interface graphique « devoir.ui » suivant le modèle présenté ci-dessus.
Page 1|3
2- Ouvrir le fichier nommé « devoir.py » situé dans votre dossier de travail dans lequel vous apportez les
modifications suivantes :
a. Développer le module « Remplir », qui s’exécute suite à un clic sur le bouton « Remplir », et
permettant de :
• Remplir la matrice A à partir du fichier « mat.txt »,
• Afficher la matrice dans le listWidget correspondant,
• Afficher le nombre de lignes de la matrice dans le lineEdit correspondant,
• Afficher le nombre de colonnes de la matrice dans le lineEdit correspondant.
b. Développer le module « Afficher », qui s’exécute suite à un clic sur le bouton « Afficher », permettant
de :
• Vérifier si la matrice est remplie, afficher un message d’erreur via QMessageBox, si elle n’est
pas remplie,
• Remplir le fichier « Fmax.dat », dans le cas contraire
• Afficher le fichier « FMax.dat » dans le tableWidget correspondants.
c. Développer un module « Resultat », qui s’exécute suite à un clic sur le bouton « Résultat », et
permettant de :
• Afficher le numéro de la colonne dominante dans le lineEdit correspondant,
• Afficher le nombre des maximums se trouvant dans cette colonne dans le lineEdit
correspondant.
Barème :
Question : Nbre Points Note
Interface graphique 2.5
Décomposition en modules utiles à la solution 0.5
Appels des modules 0.5
Structures de données adéquates pour le problème 2
Module Remplir 7
Module Afficher 4
Module Resultat 3.5
Page 2|3
Exemples d’interface
Page 3|3