Problème concours – Bac théorique – Section informatique – 2008

Bac Info 04-12-25
176 0

Sujet (Algo et programmation - Bac 2008)

Les données relatives es à un concours sont enregistrées dans un fichier typé intitulé concours.dat. Il comporte n enregistrements relatifs aux n candidats.

Chaque enregistrement comporte dam.s cet ordre :

- numero (entier)

- nom (chaine de 30 caractères)

- prenom (chaine dc 30 caractères)

- matierel (Chaîe de 20 caractères)

- notel (réel)

- matiere2 (Chaîne de 20 caractères)

- note2 (réel)

- matiere3 (Chaine de 20 caractères)

- note3 (réel)

notei est la notc obtenue par un candidat dans la matière matierei.

On se propose d'écrire une application qui traite ces données pour produire deux nouveaux fichiers.

Le premier, intitulé resultat.dat contient n enregistrements comportant en plus des données précédentes, d'autres champs "moycnne" et "rang" de types respectifs réel et entier.

Les enregistrements de ce fichier sont classés par ordre de mérite c'est- à-dire suivant un tri décroissant sur tes moyennes.

La moyenne d'un candidat est calculée corn.me suit (1.note1 + 2. note2 2.note3)/ 5.

Le secord fichier intitulé delails.txt de type texte. comporte :

- dans la première ligne le nombre d'admis (moyenne >= 10)

- dans la seconde ligne : la meilleure note dans matierel suivie d'un espace puis du nombre de candidats ayant eu notel >=10,

- dans la troisième ligne : la meilleure note dans matiere2 suivie d'un espace puis du nombre de candidats ayant eu note2 >=10,

- dans la quatrième ligne la meilleure note dans niatiere3 suivie d’un espace puis du nombre de candidats ayant eu note3 >=10.

 

 

 

Solution Algorithmique

Dans cet algorithme, On va utiliser sept procédures :

- la fonction saisie()

- la procédure remplir_fichier_concours()

- la procédure tri_decroissant_tableau()

- la procédure remplir_fichier_resultat()

- la procédure recherche_nbr_admis()

- la procédure recherche_max_note()

- la procédure remplir_fichier_details()

 

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
n entier
t Tableau contenant  50 candidats

La fonction saisir

Cette fonction saisit et retourne le nombre des enregistrements à insérer dans le fichier concours.

Déclaration des objets

Objet Type / Nature
n entier

La procédure remplir_fichier_concours

La procédure remplir_fichier_concours(n) sert à constituer le fichier binaire concours.dat en y enregistrant les informations des n candidats.

Pour chaque candidat, la procédure réalise les actions suivantes :

1- créer un dictionnaire contenant les champs : numéro, nom, prénom, trois matières et leurs notes.

2- demander à l’utilisateur de saisir successivement toutes ces informations.

3- calculer la moyenne du candidat selon la formule : moyenne= (note1 + 2 × note2 + 2 × note3)/ 5

​4- ajouter un rang provisoire, correspondant à l’ordre d’entrée.

5- stocker le dictionnaire dans un tableau t.

6- enregistrer le dictionnaire dans le fichier binaire concours.dat à l’aide de dump().

7- finalement, la procédure ferme le fichier après avoir écrit les n enregistrements.

Déclaration des objets

Objet Type / Nature
f_candidats fichier du concours.dat
i entier

 

La procédure tri_decroissant_tableau

Cete programme réalise un tri décroissant d’un tableau t contenant des enregistrements (dictionnaires). Le tri se fait selon la valeur de la clé "moyenne".

1- Pour chaque position i du tableau, on suppose que c’est la position du maximum.

2- On parcourt les éléments suivants pour trouver celui qui a la plus grande "moyenne".

3- Si on trouve un élément plus grand, on mémorise son indice.

4- À la fin, si le maximum trouvé n'est pas à sa place, on échange les deux éléments.

Déclaration des objets

Objet Type / Nature
i entier
j entier
indice_max entier

 

La procédure remplir_fichier_resultat

Ce procédure sert à enregistrer dans un fichier binaire (resultat.dat) les n premiers éléments du tableau t.

Elle :

1- ouvre un fichier binaire nommé resultat.dat en écriture ("wb").

2- parcourt les n premiers éléments du tableau t.

3- écrit chaque élément dans le fichier.

4- ferme le fichier à la fin pour sauvegarder les données.

Déclaration des objets

Objet Type / Nature
f_resultats fichier du resultat.dat
i entier

 

La fonction recherche_nbr_admis

Cette fonction sert à compter le nombre d’admis dans un tableau t contenant des enregistrements (dictionnaires).

Un candidat est considéré "admis" lorsque la valeur du champ indiqué par champs est supérieure ou égale à 10.

Déclaration des objets

Objet Type / Nature
i entier
nbr_admis entier

 

La fonction recherche_max_note

Cette fonction sert à chercher la note maximale dans un tableau t contenant des enregistrements (dictionnaires), en se basant sur un champ précis (exemple : "note1", "note2", …).

Elle :

1- suppose d’abord que le maximum est la valeur du champ champ du 1er élément → t[0][champ].

2- parcourt le tableau du 2ᵉ élément jusqu’au n-ième.

3- chaque fois qu’il trouve une valeur plus grande, il met à jour max_nombre.

4- à la fin, il retourne la plus grande valeur trouvée.

Déclaration des objets

Objet Type / Nature
max_nombre entier
i entier

 

La procédure remplir_fichier_details

Le programme sert à créer un fichier texte (details.txt) contenant des statistiques calculées à partir des données des candidats.

Il extrait plusieurs informations importantes à partir du tableau t :

- max_moyenne → le nombre de candidats ayant une moyenne ≥ 10

- max_note1 → la note maximale obtenue dans la matière 1.

- nbr_note1 → le nombre de candidats ayant une note1 ≥ 10.

- max_note2 → la note maximale de la matière 2.

- nbr_note2 → le nombre de candidats ayant une note2 ≥ 10.

- max_note3 → la note maximale de la matière 3.

- nbr_note3 → le nombre de candidats ayant une note3 ≥ 10.

Déclaration des objets

Objet Type / Nature
f_details fichier du details.txt
max_moyenne entier
max_note1 entier
nbr_note1 entier
max_note2 entier
nbr_note2 entier
max_note3 entier
nbr_note3 entier

 

Solution en Python

 

0 commentaire

laisser un commentaire

Veuillez noter s'il vous plaît*

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Passion de robotique

Atelier robotique

Construction des robots

Bras robotique

Maison intelligente

But de ce site web

La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.

Coordonnées

Zaouiet Kontech-Jemmel-Monastir-Tunisie

+216 92 886 231

medaliprof@gmail.com

Photos des articles

Site robotique réalisé par Mohamed Ali Haj Salah - Prof Info