Vous êtes sur la page 1sur 5

Université des Sciences et de la Technologie HOUARI BOUMEDIENE

Faculté d'Electronique et d'Informatique


Département d'Informatique

Programmation et Structures de Données

Chapitre IV. Listes Chaînées


Série d'exercices : 3

Exercice 7.1,.2,.3,.4

Ilyes KHENNAK
Maitre de Conférences Classe B

Laboratoire de Recherche en Intelligence Artificielle (LRIA)


Bureau 212, Département Informatique, FEI
Exercice 7:
1. Donner la déclaration des deux listes : Lnote & Letud

Type
Lnote = Enregistrement
CF : entier;
MY : réel;
svt_1 : ^Lnote;
@49 @52
Fin; 2 3

10 10
Letud = Enregistrement
Nom : chaîne[20]; @52 NULL
Prénom : chaîne[20];
MG : réel;
Note : ^Lnote;
svt_2 : ^Letud; @13 N1 @28 N2 @37 N3
Fin;
P1 P2 P3

10 17.0 9.5

@49 @57 @81

L @13 @28 @37 NULL

Slide 2 sur 5
Exercice 7:
2. Ecrire une AP Moyenne permettant de calculer la moyenne d'une liste de notes.

Fonction Moyenne(E\ L : ^Lnote) : réel;


Var
Som : réel;
Coef : entier;
Début
Som  0 ; /* Initialiser la somme des notes à zéro*/
Coef  0 ; /* Initialiser la somme des coefficients à zéro */
Tant que (L <> NULL) /* Parcourir la liste L, on peut parcourir la liste avec L car cette dernière est un paramètre d'entrée et
donc aucune modifications ne sera effectuée sur la liste */
Faire
Som  Som + (L^.MY * L^.CF); /* Calculer la somme des notes */
Coef  Coef + L^.CF; /* Calculer la somme des coefficients */
L  L^.svt_1; /* Passer à l'élément suivant */
Fait;
Moyenne  Som / Coef; /* Calculer la moyenne */
Fin.

Slide 3 sur 5
Exercice 7:
3. Ecrire une AP Delib permettant de calculer la moyenne générale de chaque étudiant.

Procédure Delib(E-S\ L : ^Letud);


Var
P : ^Letud;
Début
P  L; /* Initialiser le pointeur intermédiaire P */
Tant que (P <> NULL) /* Parcourir la liste des étudiants L en utilisant le pointeur P */
Faire
P^.MG  Moyenne(P^.Note); /* Calculer la moyenne générale de chaque étudiant */
P  P^.svt_2; /* Passer à l'élément suivant */
Fait;
Fin.

Slide 4 sur 5
Exercice 7:
4. Ecrire une AP Supprime permettant de supprimer les étudiants ayant une MG<5.

Procédure Supprime(E-S\ L : ^Letud);


Var
P : ^Letud;
Début
Si (L<> NULL) Alors
Tant que (L^.svt <>NULL) et (L^.MG<5) Faire /* Si MG du premier étudiant < 5 */
P  L;
L  L^.svt; /* Pointer la tête L sur le deuxième étudiant */
Libérer(P); /* Supprimer le premier élément */
Fait;
Si (L^.MG<5) Alors /* Si MG du dernier étudiant < 5 */
Libérer(L);
L  NULL;
Sinon
Q  L;
P  L^.svt;
Tant que (P <>NULL) Faire
Si (P^.MG <5) Alors
Q^.svt_2  P^.svt_2;
Libérer(P);
P  Q^.svt_2;
Sinon
Q  P;
P  P^.svt;
Fsi;
Fait;
Fsi;
Fsi; Slide 5 sur 5
Fin.

Vous aimerez peut-être aussi