Telechargé par BOUAZIZ Abdelkader

Exercices sur les lises chaînées univ-djelfa

publicité
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.
Téléchargement