0% ont trouvé ce document utile (0 vote)
256 vues7 pages

Chapitre 2 Les Enregistrements

L'enregistrement permet de rassembler des données de types différents sous un nom unique. Le document décrit la déclaration et la manipulation d'enregistrements et de tableaux d'enregistrements, avec des exemples sur les étudiants.

Transféré par

mar iem
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
256 vues7 pages

Chapitre 2 Les Enregistrements

L'enregistrement permet de rassembler des données de types différents sous un nom unique. Le document décrit la déclaration et la manipulation d'enregistrements et de tableaux d'enregistrements, avec des exemples sur les étudiants.

Transféré par

mar iem
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 7

Chap2_ASD2 FST LCS1

Chapitre 2 : Les enregistrements


I- Notion d’enregistrements
Les variables que nous avons, jusqu’au présent, utilisées ne se constituent que d’un seul
type de données (Entier, Réel, Caractère, etc.).
Les tableaux constituent une extension puisque nous y déclarons une variable composée de
plusieurs éléments de même type.
Un enregistrement (ou structure en C) permet de rassembler un ensemble d’éléments de
types différents sous un nom unique. On définit ainsi un type composé.
A titre d’exemple, une date, une adresse ou un nombre complexe peuvent être considérés
comme des enregistrements.

II- Déclaration des variables de type enregistrement


Syntaxe :
Type
Nom_Enreg = Enregistrement
Champ1 : type1
Champ2 : type2
Champ3 : type3
Champ n : type n
Fin enregistrement
Un enregistrement est représenté en mémoire sous forme de suite de zones contiguës qui
servent chacune à représenter les différents champs, ces zones sont de tailles différentes
puisque chaque champ a un type différent.
Exemples :
1- Déclarer un enregistrement qui permet d’identifier une adresse

TYPE
Adresse = Enregistrement
Rue : chaîne[30]
Ville : chaîne[30]
CP : entier

Fin enregistrement
VAR
AD: Adresse

Page 1 / 7
Chap2_ASD2 FST LCS1

2- Déclarer un enregistrement qui permet d’identifier un étudiant

TYPE
Etudiant = Enregistrement
Id : entier
Nom : chaîne[30]
Prenom : chaîne[30]
Niveau : entier
Moyenne : réel

Fin enregistrement
VAR
ET : Etudiant
Les champs d’un enregistrement peuvent être des variables ordinaires, des tableaux, des
pointeurs ou autres enregistrements.

III- Manipulation des variables de type enregistrement


Les enregistrements ne peuvent pas être référencés globalement dans une instruction car ils
sont composés d’éléments de type différents. Par contre, il est possible de faire référence à
chaque élément d’un enregistrement.
Pour cela, il est nécessaire de préciser le nom (identificateur) de l’enregistrement, suivi
d’un suffixe indiquant l’identificateur du champ concerné. Les deux identificateurs sont
séparés par un point.

Exemples :

• ET. Id ← 124 : affecte la valeur 124 au champ Id de l’enregistrement ET


• Ecrire ("Le nom de l’étudiant : ", ET.Nom ) : affiche le champ Nom de
l’enregistrement ET
• lire (ET. Niveau) : lit un entier qui sera affecté au champ Niveau de l’enregistrement
ET

Remarques :
1- Il est possible d’utiliser l’opérateur d’affectation entre deux enregistrements de même type
comme dans l’exemple suivant :
VAR
ET1 , ET2 : Etudiant

Page 2 / 7
Chap2_ASD2 FST LCS1

ET1. Id ← ET2. Id
ET1. Nom ← ET2. Nom
ET1 ← ET2 ↔ ET1. Prenom ← ET2. Prenom

ET1. DN ← ET2. DN
ET1. Niveau ← ET2. Niveau

2- On peut effectuer une comparaison entre 2 enregistrements de même type comme dans
l’exemple suivant :

• Si (ET1 = ET2) Alors ……


• Tantque (ET1 ≠ ET2) Faire ……
IV- Enregistrement comportant d’autres Enregistrements

Exemple :
TYPE
Date = Enregistrement
jour : entier
mois : entier
annee : entier
Fin enregistrement
Etudiant = Enregistrement
Id : entier
Nom : chaîne[30]
Prenom : chaîne[30]
DN : Date
Niveau : entier
Moyenne : réel
Fin enregistrement
VAR
ET : Etudiant

• ET.DN : représente la date de naissance correspondant à l’enregistrement ET.


• ET. DN.jour : représente le jour de naissance correspondant à l’enregistrement ET.
• ET. DN.mois : représente le mois de naissance correspondant à l’enregistrement ET.
• ET. DN.annee : représente l’année de naissance correspondant à l’enregistrement ET.
• ET.DN.jour 25 : permet d’affecter la valeur 25 au champ jour du champ DN de
l’enregistrement ET.

• Lire (ET.DN.jour, ET.DN.mois, ET.DN.annee) : permet de lire à partir du clavier les


valeurs des champs jour, mois et annee du champ DN de l’enregistrement ET.

• Ecrire ("Date de naissance de l’étudiant:" ET.Prenom, « », ET.Nom, « est »,


ET.DN.jour, "/", ET.DN.mois, "/" ,ET.DN.annee)) : permet d’afficher les valeurs des
champs jour, mois et annee du champ DN de l’enregistrement ET.

V- Tableaux d’enregistrements

Page 3 / 7
Chap2_ASD2 FST LCS1

Exemple :
TYPE
Adresse = Enregistrement
Rue : chaîne[30]
Ville : chaîne[30]
CP : entier

Fin enregistrement
Eleve = Enregistrement
Matricule : entier
Nom : chaîne[30]
Prenom : chaîne[30]
Ad : Adresse
Moy : réel

Fin enregistrement
TAB : Tableau [ 1..40] de Eleve
VAR
Classe :TAB

• L’enregistrement Eleve pourrait, par exemple, servir à représenter un élève dans une
classe. Cet élève serait défini par son matricule, nom, prénom, adresse et moyenne.
• Classe représente un ensemble de 40 élèves.
• Classe[1].nom : Représente le nom du 1er élève du tableau Classe. N.B :
Classe.nom[1] n’a pas de sens.
• Classe[i].nom : Représente le nom du ième élève du tableau Classe.
• Classe[i].x : désigne la valeur du champ x de l’ième élément du tableau Classe.
• Classe[i] : représente l’enregistrement de type élève correspondant à l’ ième élément du
tableau Classe.

Application :
1. Définir un enregistrement qui permet d’identifier un étudiant (Id, Nom, Prenom et date
de naissance, Niveau, Adresse)
2. Ecrire une procédure SAISIE qui permet de saisir les informations de N étudiants
(N≤50).
3. Ecrire une procédure RECHERCHE qui permet de chercher et d’afficher les
informations concernant un étudiant dont l’Id est saisi par l’utilisateur.
4. Ecrire le programme principal.

Page 4 / 7
Chap2_ASD2 FST LCS1

Algorithme Classe_Etudiant
TYPE
Date = Enregistrement
jour : entier
mois : entier
annee : entier
Fin enregistrement
Adresse = Enregistrement
Rue : chaîne[30]
Ville : chaîne[30]
CP : entier

Fin enregistrement
Etudiant = Enregistrement
Id : entier
Nom : chaîne[30]
Prenom : chaîne[30]
DN : Date
Niveau : entier
AD : Adresse
Fin enregistrement
TAB : Tableau [1..50] de Etudiant

VAR
Classe: TAB
N : entier

PROCEDURE SAISIE (Var T : TAB, N : entier)


VAR
i : entier

Début
Pour i de 1 à N Faire
Ecrire ("Etudiant N° : " , i )
Ecrire ("Donner l’identifiant de l’étudiant : " )
Lire (T[i].Id)
Ecrire ("Donner le nom : " )
Lire (T[i].Nom)
Ecrire ("Donner le Prénom : " )
Lire (T[i].Prenom)

Page 5 / 7
Chap2_ASD2 FST LCS1

Ecrire ("Donner la date de naissance : " )


Lire (T[i].DN.jour, T[i].DN.mois, T[i].DN.annee)
Ecrire ("Donner Le niveau : " )
Lire (T[i].Niveau)
Ecrire ("Donner l’adresse : " )
Lire (T[i].AD.Rue, T[i].AD.Ville, T[i].AD.CP)
FinPour

Fin
PROCEDURE RECHERCHE (T : TAB, N : entier)
VAR
i, identifiant , rech: entier
Début
Ecrire ("Donner l’identifiant de l’étudiant recherché :" )
Lire (identifiant)
i←1
rech ← 0
Tant que (i ≤ N et rech = 0) faire
Si ( T[i].Id = identifiant) Alors

rech ← 1
Sinon
i←i+1
Finsi
FinTantque
Si (rech = 1) alors
Ecrire("Identifiant : ",T[i].Id )
Ecrire ("Nom : ",T[i].Nom)
Ecrire ("Prénom : ",T[i].Prenom)
Ecrire ("Date de naissance :", T[i].DN.jour, "/", T[i].DN.mois, "/"
,T[i].DN.annee))
Ecrire ("Niveau : ",T[i].Niveau)

Page 6 / 7
Chap2_ASD2 FST LCS1

Ecrire ("Adresse :", T[i].AD.Rue, ",", T[i].AD.Ville, "," ,T[i].AD.CP))


Sinon
Ecrire ("Etudiant inexistant")
Finsi

Fin
DEBUT
Répéter
Ecrire("Donner le nombre d’étudiant :")
Lire(N)
Jusqu’à (N>0 et N<=50)
SAISIE (Classe, N)
RECHERCHE (Classe, N)

FIN

Page 7 / 7

Vous aimerez peut-être aussi