Cours N°5 : Cours N°5 :
Les Enregistrements
Département des Sciences Techniques.
Université Ammar Thelidji – Laghouat.
Sommaire
1. Introduction
2. Définition des enregistrements
3. Manipulation des enregistrements
4. Les enregistrements en PASCAL
5. Exercices
Introduction
• Jusqu'à présent, nous n'avons utilisé que :
1. Les types primitifs (entiers, réels, booléens,
Introduction
1. Les types primitifs (entiers, réels, booléens, chaînes de caractères)
2. Les tableaux de types primitifs.
• Il est possible de créer nos propres types, en se basant sur les types existants.
basant sur les types existants.
• Pour définir ce nouveau type on utilise une structure appelée « enregistrements ».
• Contrairement aux tableaux, les enregistrements peuvent avoir des éléments hétérogènes,
Remarques
peuvent avoir des éléments hétérogènes, c'est-à-dire de types différents .
• Les éléments qui composent un enregistrement sont appelés champs.
• L’enregistrement est un type de données
défini par l'utilisateur qui permet de grouper un nombre fini d'éléments de types éventuellement
Définition
nombre fini d'éléments de types éventuellement différents.
• Exemple:
Les champs de l’enregistrement
Valeurs
Déclaration des
enregistrements
enregistrements
• La déclaration des enregistrements se fait dans une partie des algorithmes appelée Type.
Déclaration
une partie des algorithmes appelée Type.
• Cette partie précède la section des variables.
Nom_Enregistrement = Enregistrement Nom_Champ1 : Type Champ 1 ;
Nom_Champ2 : Type Champ 2 ; Nom_Champ2 : Type Champ 2 ; ...
Nom_ChampN : Type Champ N ; FinEnreg ;
Exemples de déclaration
Type Personne
Type Date
• Élaborer un enregistrement pour une voiture, qui contient les champs suivants:
Exercice
qui contient les champs suivants:
• Catégorie : soit un caractère A, B, C, D, E ou F.
• Poids : valeur numérique en Kg.
• Année : la date de première mise en circulation.
• Matricule: numéro d'immatriculation.
• Matricule: numéro d'immatriculation.
Solution
TYPE
Voiture = Enregistrement Voiture = Enregistrement
Catégorie : Caractère;
Poids : Réel;
Année : Entier;
Année : Entier;
Matricule : Chaine de caractères[12];
FinEnreg;
Algorithme Exemple ; Type
Voiture = Enregistrement Catégorie : Caractère;
Poids : Réel;
Poids : Réel;
Année : Entier;
Matricule : Chaine de caractères[12];
FinEnreg;
Variable Variable
V1 : Voiture ;
Début
….
Fin.
Manipulation des Manipulation des
enregistrements
• La manipulation d'un enregistrement se fait à travers ses champs.
Manipulation des enregistrements
travers ses champs.
• Comme pour les tableaux, il n'est pas possible de manipuler un enregistrement globalement.
• Par exemple, pour afficher un enregistrement il
• Par exemple, pour afficher un enregistrement il faut afficher tous ses champs un par un.
• Les champs d'un enregistrement sont accessibles par leur nom, grâce à l'opérateur ‘.’ (un point)
Accès aux champs d'un enregistrement
par leur nom, grâce à l'opérateur ‘.’ (un point)
• Par exemple, pour accéder au matricule de la voiture V1, on utilise l'expression :
V1.Matricule V1.Matricule
• Les champs d'un enregistrement sont utilisés
comme variables : affectation, lecture, affichage,...
Les enregistrements Les enregistrements
en Pascal
TYPE
Nom_type = Record
Déclaration d’enregistrement en Pascal
Nom_type = Record
champ_1 : type_1 ; champ_2 : type_2 ;
...
champ_n : type_n ;
End ; End ; VAR
Nom_Variable : Nom_type ;
PROGRAM Fiche_voiture;
TYPE
Voiture = RECORD
categorie : char; L’enregistrement
categorie : char;
poids : real;
annee : integer;
matricule : String[12];
End;
VAR
V1 : Voiture;
Begin
Voiture
Doit être déclaré
Begin
V1.categorie := ‘B’;
V1.poids := 2500;
V1.annee := 2013;
V1.matricule := ‘25415-113-03’;
End.
Remplir les champs
• Pour la lecture/écriture, nous utilisons évidement les instructions Read et Write.
Lecture / Ecriture
les instructions Read et Write.
• Exemple :
Read (V1.Categorie ) Read ( V1.Poids )
Write (V1.Categorie ) Write( V1.Poids )
Read ( V1.Poids ) Read ( V1.Annee )
Read ( V1.Matricule )
Write( V1.Poids ) Write( V1.Annee )
Write( V1.Matricule )
• On peut aussi utiliser l'instruction With .. Do pour simplifier les opérations avec les champs.
Instruction With .. Do
Exemple: soit V1 une variable de type Voiture:
With V1 Do
Read (V1.Categorie );
Write(V1.Poids ) ; V1.Annee := 2013;
With V1 Do Begin
Read (Categorie );
Write( Poids ) ; Annee := 2013;
End;
Tableau Tableau
d'enregistrement
• Il arrive souvent que l’on veuille traiter non pas un seul enregistrement mais plusieurs.
• Dans ce cas, on peut créer un tableau d’enregistrement.
Tableau d'enregistrement
• Dans ce cas, on peut créer un tableau d’enregistrement.
• Supposant: on veut traiter un groupe des personnes, décrits par les informations suivantes:(Nom ,Prénom ,Age).
• La structure de donnée est:
( Tableau T des enregistrements Personne ) : ( Tableau T des enregistrements Personne ) :
Algorithme Groupe;
Tableau d'enregistrement
Program Groupe;
Algorithme Programme Pascal
Algorithme Groupe;
Type
Personne= Enregistrement
Nom, Prénom : chaine de caractères;
Age : entier;
FinEnreg;
Variables
Program Groupe;
Type
Personne= Record
Nom, Prenom : String;
Age : Integer;
End;
Var Variables
T : Tableau [10] Personne;
Début
… Fin.
Var
T :Array[1..10] of Personne;
BEGIN
…
END.
• Exemple1: Modifier le Prénom de la troisième(3) personne du tableau:
Tableau d'enregistrement
personne du tableau:
T[3].Prénom ‘ Ahmed’
• Exemple2: Afficher le Nom et l’Age de tous les personnes:
Pour i 1 à N faire
Écrire ( T[ i ].Nom) ;
Écrire ( T[ i ].Age) ;
FinPour;
Exercices
Exercice 1
1. Écrire un algorithme qui permet de lire et afficher l'enregistrement d'un Patient.
2. Traduire cet algorithme en programme Pascal.
Exercice 2
• Réaliser le programme Pascal Fiche_voiture qui utilise l’enregistrement Voiture vue dans le cours.
utilise l’enregistrement Voiture vue dans le cours.
• Utiliser un Tableau T[20] pour enregistrer les informations de 20 voitures.
• Afficher tous les voitures anciennes selon la conduction suivante:
conduction suivante:
(Année entre 1998 et 2008) et
(Poids < 3500 Kg).