Vous êtes sur la page 1sur 2

Chapitre 4 : Les enregistrements

Les enregistrements
Pb : Dsire et afficher la moyenne de la note doral et la note dcrit obtenu au bac de franais pour les lves
d'une classe de premire. Pour cela, on souhaite galement mmoriser le nom et le prnom de chaque lve.
Comment mmoriser toutes ces informations afin de les manipuler ?
Solution 1 : utiliser plusieurs tableaux
const nb_eleve = 20
nom : tableau [1 .. nb_eleve] de chane de caractres
prenom : tableau [1 .. nb_eleve] de chane de caractres
oral : tableau [1 .. nb_eleve] de rel
crit : tableau [1 .. nb_eleve] de rel
ou
tabnom : tableau [1 .. nb_eleve, 1 .. 2] de chane de caractres
tabnote : tableau [1 .. nb_eleve, 1 .. 2] de rel
Inconvnient : manipulation de beaucoup de tableaux
Solution 2 : utiliser un tableau
1
nom
prenom
oral
crit

2
nom
prenom
oral
crit

nb_eleve

I Dfinition
Un enregistrement est un type de donnes structures, il sert rassembler dans une mme rupture des donnes de
types diffrents se rapportant un mme sujet.
II Dclaration
TYPE nom_enregistrement
donne 1 : type 1
donne 2 : type 2

donne n : type n
FIN ENREGISTREMENT

: ENREGISTREMENT

type 1, type 2, type n peuvent tre diffrent


Exemple :
TYPE eleve_enr
: ENREGISTREMENT
nom, prenom : chane de caractres
oral, crit : rel
FIN ENREGISTREMENT
Remarque : eleve_enr n'est pas une variable mais un nouveau type au mme titre que les types standard : rel,
entier.
III Utilisation
Pour utiliser un type enregistrement, il faut dclarer une variable de ce type.
VAR nom_var : nom_enregistrement
VAR nom_tab : TABLEAU [ind_min .. ind_max] de nom_enregistrement
1/2

DAIGL Programmation

Chapitre 4 : Les enregistrements

Exemples :
1)
VAR unEleve : eleve_enr
Accs au nom de l'lve : eleve_enr.nom
Accs la note oral : eleve_enr.oral

2)

VAR tabEleve : TABLEAU [1 .. nb_eleve] de eleve_enr


Accs au nom du troisime lve : tabEleve [3].nom
Accs au nom du cinquime lve : tabEleve [5].nom

3) Programme lve
CONST nb =20
TYPE eleve_enr : ENREGISTREMENT
nom, prenom : chane de caractres
oral, crit : rel
FIN ENREGISTREMENT
VAR tabEleve : TABLEAU [1 .. nb] de eleve_enr
i : entier
moy : rel
Dbut
| Pour i de 1 nb Faire
| | Afficher ( Donner le nom, le prnom, et les deux notes de llve )
| | Saisir (tabeleve[i].nom
| | Saisir (tabeleve[i].prenom)
| | Saisir (tabeleve[i].oral)
| | Saisir (tabeleve[i].crit)
| Fin pour
| Pour i de 1 nb Faire
| | moy (tabeleve[i].oral + tabeleve[i].crit) / 2
| | Afficher ( La moyenne de l'lve , tabeleve[i].nom, , tabeleve[i].prenom, est de ,moy)
| Fin pour
FIN
Remarque 1 : un type enr peut contenir un champ de type enregistrement. Supposons que dont le type eleve_enr,
nous voulions sa date de naissance :
TYPE date
: ENREGISTREMENT
jour, mois, anne : entier
FIN ENREGISTREMENT
TYPE eleve_enr
: ENREGISTREMENT
nom, prenom : chane de caractres
oral, crit : rel
datenaiss : date
FIN ENREGISTREMENT
Remarque 2 : type enr peut contenir un champ de type tableau. Supposons que le type eleve_enr est caractris
par 6 notes :
TYPE eleve_enr
: ENREGISTREMENT
nom, prenom : chane de caractres
datenaiss : date
note : tableau [1 .. 6] de rel
FIN ENREGISTREMENT
Remarque 3 : les donnes contenues dans les enregistrements et les tableaux sont perdus des que l'on quitte le
programme dans lequel il est saisi. Solution : ou type de donnes, le fichier.
2/2

DAIGL Programmation

Vous aimerez peut-être aussi