Exercices sur les lises chaînées: Exercice 1: Ecrire un algorithme qui crée une liste chaînée <<Etudiant>> et calcule le nombre d’éléments de cette liste. Pour ce faire considérer que chaque nœud de la liste contient un nom et une moyenne. Traduire l’algorithme en Pascal. Exercice 2: Ecrire un algorithme qui calcule et affiche le nombre de fois qu'un certain nom d'étudiant apparait dans la lise Etudiant de l'exercice précédent. Solutions des exercices: Exercice 1: Algorithme exercice_1; Type pointeur = étudiant étudiant = enregistrement nom : chaine[20]; moy : réel; suivant : pointeur; fin; var début, courant : pointeur; rep : caractère; nbre : entier; Début nouveau ( début ); courant := début; nbre := 1; Répéter écrire (' entrer le nom et la moyenne de l''étudiant'); lire (courant . nom, courant . moy); ecrire (' autre élément o/n ? '); lire ( rep ); si rep = 'o' alors début nouveau (courant . suivant ); courant := courant . suivant; nbre := nbre + 1; fin sinon courant . suivant := nil; jusqu'à rep = 'n'; écrire (' le nombre des éléments de cette liste est :', nbre); Fin. Traduction de l'algorithme en Pascal: program exercice_1; Type pointeur = ^ étudiant étudiant = record nom : string [20]; moy : real; suivant : pointeur; end; var début, courant : pointeur; rep : char; nbre : integer; Begin new ( début ); courant := début; nbre := 1; Repeat writeln (' entrer le nom et la moyenne de l''étudiant'); readln (courant ^ . nom, courant ^ . moy); writeln (' autre élément o/n ? '); readln ( rep ); if rep = 'o' then begin new (courant ^ . suivant ); courant := courant ^ . suivant; nbre := nbre + 1; end else courant ^ . suivant := nil; until rep = 'n'; writeln (' le nombre des éléments de cette liste est :', nbre); End. Exercice 2: Algorithme exercice_2; Type pointeur = étudiant étudiant = enregistrement nom : chaine[20]; moy : réel; suivant : pointeur; fin; var début, courant : pointeur; nom_etud : chaine [20]; nbre : entier; Début ecrire (' entrer le nom recherché'); lire ( nom_etud); nbre := entier; courant := début; Tant que courant <> nil faire si (courant . nom = nom_etud) alors début nbre := nbre + 1; courant := courant . suivant; fin; fin; écrire (' le nombre de fois que ce nom apparait est :', nbre); fin.