Professional Documents
Culture Documents
Corrige Exam Janvier 2017
Corrige Exam Janvier 2017
Fonction CalculScore (Don TD : TabDC, Don n : Entier, Don TC : TabC) : Réel
Variable i :entier
S : réel
Début
S 0
Pour i de 1 à n faire
SS+ td[i]*tc[i].Coeff
Fin pour
Retourner(S)
fin
3. Procédure InsertCandidat (DonRes cr : Concours, Don c : Candidat) permettant
d’insérer le candidat c dans la liste des candidats du concours cr de telle sorte que la
liste reste toujours triée dans l’ordre décroissant des scores. Cette procédure
commence par calculer le score total du candidat c, puis recherche la position correcte
de l’insertion.
1 2 3 4
Nom : med ali aymen Qjhjq
ScoreTot : 120 80 55 29
4. Procédure Selectionner (Don cr : Concours, DonRes LR, LA : ListeC) permettant de
mettre la liste des candidats retenus (sélectionnés) dans LR et la liste des candidats en
attente dans LA pour le concours cr donné en paramètre. La procédure doit mettre à
jour le résultat de sélection (ResSelection) de chaque candidat à l’aide de l’une des
valeurs suivantes : (sélectionné, en attente, non sélectionné).
Procédure Selectionner (Don cr : Concours, DonRes LR, LA : ListeC)
Variables i,j : entier
Début
Pour i de 1 à cr. NbPostes faire //exp Nbpostes=70
LR[i] cr.ListCand[i]
Cr.ListCand[i].ResSelection "sélectionné"
Fin pour
j1
Pour i de cr.NbPostes+1 à cr.Nbpostes+cr.NbAttente faire//Nb. Attente=30 de 71 à 100
LA[j] cr.ListCand[i]
jj+1
Cr.ListCand[i].ResSelection "en attente"
Fin pour
Pour i de cr.NbPostes +cr.NbAttente+1 à Cr.Nbc faire//de 101 jusqu’à la fin
Cr.ListCand[i].ResSelection "non sélectionné "
Fin pour
fin
5. Procédure AfficheListeCand (Don LC : ListeC, Don n : Entier) permettant d’afficher la
liste LC des n candidats (CIN, nom, prénom et score) donnée en paramètre.
Procédure AfficheListeCand (Don LC : ListeC, Don n : Entier)
Variable i : entier
Début
Pour i de 1 à n faire
Ecrire("cin : ", LC[i].cin)
Ecrire("nom : ", LC[i].nom)
Ecrire("prénom : ", LC[i].prenom)
Ecrire("score : ", LC[i].ScoreTot)
Fin pour
Fin
6. En utilisant les modules déjà développés, écrivez un algorithme principal nommé
Gestion_Concours permettant de :
Initialiser un concours Crs.
Saisir n candidats en utilisant la procédure SaisieCandidat et les insérer dans la liste
des candidats du concours Crs.
Effectuer la sélection des candidats pour le concours Crs et afficher les listes des
candidats sélectionnés et ceux en attente.
Algorithme Gestion_concours
Variable
Crs :concours
N ,i: entier
LR,LA : ListeC
C :candidat
Début
InitConcours (crs)
Répéter
Ecrire(« Donner le nb de candidats »)
Lire(n)
Jusqu’à n>0 et n<=MaxCand
Pour i de 1 à n faire
SaisieCandidat (c)
InsertCandidat (crs,c)
Fin pour
Selectionner (crs,LR, LA)
Ecrire("candidats retenus : ")
AfficheListeCand (LR, crs. NbPostes)
Ecrire("candidats en attente : ")
AfficheListeCand (LA, crs. NbAttente)
fin