Liste monodirectionnelle débutante
Résolu
bornin90s
Messages postés
52
Statut
Membre
-
yg_be Messages postés 24281 Statut Contributeur -
yg_be Messages postés 24281 Statut Contributeur -
Bonjour tout le monde je suis une débutante en programmation et aujourd'hui j'essaie de comprendre la notion de liste monodirectionnelle . Alors je suis en train de lire le cours et y ' a deux trois points qui sont un peu flous. Du coup je sollicite vivement votre aide svp et merci d'avance.
Alors c'est un simple exercice d'application et la solution du prof et je vais mettre en commentaire les 2 - 3 lignes que je ne comprend pas.
En fait j'avais raté ce cours c'est pour cela.
alors l'énoncé de l'exercice:
Ecrire un module qui permet de créer une liste monodirectionnelle d’étudiants. Les étudiants de la liste seront saisis en fonction des besoins de l’utilisateur. L’étudiant est caractérisé par son matricule, son nom, son prénom, sa classe et sa moyenne.
Merci d'avoir pris le temps de m'aider .
Alors c'est un simple exercice d'application et la solution du prof et je vais mettre en commentaire les 2 - 3 lignes que je ne comprend pas.
En fait j'avais raté ce cours c'est pour cela.
alors l'énoncé de l'exercice:
Ecrire un module qui permet de créer une liste monodirectionnelle d’étudiants. Les étudiants de la liste seront saisis en fonction des besoins de l’utilisateur. L’étudiant est caractérisé par son matricule, son nom, son prénom, sa classe et sa moyenne.
Type LMEtudiant = ↑structure
DEBUT
Mat : chaine
nom,prenom ,classe : chaine
moy : reel
Suiv : LMEtudiant
FIN
Var Tete : LMEtudiant
Procédure CréationListeMono (Résultat Tete : LMEtudiant)/* Pourquoi le résultat est tete ?*/
Var pp, pc : LMEtudiant
Var reponse : caractère
DEBUT
Tete ← NIL
REPETER
Ecrire « Voulez vous ajouter un étudiant O/N ? »
lire reponse
Si( reponse = ‘O’ ou reponse= ‘O’) alors
ALLOUER (pc))/* On alloue de la memoire pourpermettre la creation de la liste ?*/
Ecrire « Entrer le n. de matricule de l’étudiant »
lire pc↑.mat
Ecrire « Entrer le nom et prenom de l’étudiant »
lire pc↑.nom, pc↑.prenom
Ecrire « Entrer la classe »
lire pc↑.classe
Repeter
Ecrire « Entrer la moyenne »
lire pc↑.moy
Jusqu’à (pc↑.moy>=o et pc↑.moy<= 20)
Pc↑.suiv ← NIL /* Pourquoi on affecte à suiv la valeur Nil ou c 'est pour l'initialisation ?*/
Si (Tete = NIL) Alors/* commençant de cette ligne*/
Tete ←pc
pp ← pc
SINON
Pp↑.suiv ← pc
pp ← pc/* jusqu'ici je ne comprends pas , besoin d'eclaircissement svp .et merci*/
FINSI
Merci d'avoir pris le temps de m'aider .
A voir également:
- Liste monodirectionnelle débutante
- Liste déroulante excel - Guide
- Liste code ascii - Guide
- Liste déroulante en cascade - Guide
- Site dangereux liste - Guide
- Voir liste d'amis facebook - Guide
1 réponse
bonjour,
Pourquoi le résultat est tete : parce que le résultat de la création est le premier élément de la liste.
On alloue de la mémoire pour permettre la creation d'un élément de la liste
On affecte à suiv la valeur Nil parce qu'il n'y a rien après l’élément en cours de création
Ce que tu ne comprends pas à la fin, c'est le plus important:
si la liste est vide (tête vide), alors l'élément en cours de création devient la tête, sinon on ajoute l'élément en cours de création comme suivant du dernier de la liste. dans les deux cas, on mémorise dans pp quel est le dernier élément de la liste.
Pourquoi le résultat est tete : parce que le résultat de la création est le premier élément de la liste.
On alloue de la mémoire pour permettre la creation d'un élément de la liste
On affecte à suiv la valeur Nil parce qu'il n'y a rien après l’élément en cours de création
Ce que tu ne comprends pas à la fin, c'est le plus important:
si la liste est vide (tête vide), alors l'élément en cours de création devient la tête, sinon on ajoute l'élément en cours de création comme suivant du dernier de la liste. dans les deux cas, on mémorise dans pp quel est le dernier élément de la liste.
donc il est utile de mémoriser l'adresse du dernier, sinon on devrait chaque fois partir du premier et parcourir toute la liste pour trouver le dernier.