Vous êtes sur la page 1sur 8

http://www.najah.

com 

CHAPITRE 1 - a

LES ENREGISTREMENTS
I/ Définition :
Un enregistrement est un type de données défini par l'utilisateur et qui permet de
grouper un nombre fini d'éléments (ou champs) de types éventuellement différents.

II/ Déclaration :
Déclaration d’une structure enregistrement

En algorithmique :
Puisque l'enregistrement est un nouveau type, on commence par sa déclaration :

Tableau de déclaration des nouveaux types


Type
Nom_type = Enregistrement
champ 1 : Type 1
-- --
champ n : Type n
Fin Nom_Type

Puis la déclaration des objets (variables) utilisant ce type

Tableau de déclaration des objets


Objet Type / Nature Rôle
identificateur_objet Nom_type Enregistrement pour …

En Pascal :

TYPE Nom_type = Record


champ_1 : type_1 ;
- - --
champ_n : type_n ;
End;

VAR
identificateur_objet : Nom_type ;

III/ Utilisation
4INFINFRC0001  Page 1 
http://www.najah.com 

Utilisation pour une action d'affectation


L'affectation de valeurs aux différents champs d'une variable de type enregistrement se
fait par une opération de type :

En algorithmique En Pascal
variable.champ ← valeur variable.champ := valeur ;

Exemple :

En algorithmique :

Tableau de déclaration des nouveaux types :


Type
Fiche = enregistrement
nom, prénom : Chaîne
sexe : Caractère
numéro : Entier non signé
moyenne : Réel
num_cin : Entier long
Fin Fiche

Tableau de déclaration des objets :


Objet Type / Nature Rôle
élève Fiche Enregistrement pour une fiche d'un étudiant

Affectation de valeurs à cette variable :

élève.nom ← "Swidi"
élève.prénom ← "Basma"
élève.sexe ← "F"
élève.numéro ← 18
élève.moyenne ← 13.25
élève.num_cin ← 12345678

En Pascal :

Le type enregistrement.

TYPE Fiche = Record


nom, prenom : String ;
sexe : Char ;

4INFINFRC0001  Page 2 
http://www.najah.com 

numero : Byte ;
moyenne : Real ;
num_cin : LongInt ;
End ;

Déclaration de la variable élève :

VAR
eleve : Fiche ;

Affectation des valeurs à cette variable :

eleve.nom := 'Swidi' ;
eleve.prenom := 'Basma' ;
eleve.sexe := 'F' ;
eleve.numero := 18 ;
eleve.moyenne := 13.25 ;
eleve.num_cin := 12345678 ;

Utilisation pour une action de lecture

Au niveau de l'analyse Au niveau de l'algorithme Au niveau du Pascal


variable.champ = Donnée Lire (variable.champ) ReadLn (variable.champ);

Exemple :

Au niveau de l'analyse :
élève.nom = Donnée ("Entrer le nom de l'élève : ")

Au niveau de l'algorithme :
Ecrire ("Entrer le nom de l'élève : ") ; Lire (élève.nom)

Au niveau du Pascal :
Write ('Entrer le nom de l''élève : ') ; ReadLn (eleve.nom) ;

Utilisation pour une action d'écriture

Au niveau de l'analyse et de l'algorithme Au niveau du Pascal


Ecrire (variable.champ) Write (variable.champ);

Exemple :

4INFINFRC0001  Page 3 
http://www.najah.com 

Au niveau de l'analyse et de l'algorithme :


Ecrire ("Nom : ", élève.nom)

Au niveau du Pascal :
WriteLn ('Nom : ', eleve.nom) ;

Structure Avec .. Faire


Pour simplifier l'écriture et éviter l'utilisation répétée des champs et de la notation avec le
point (variable.champ), on peut utiliser l'instruction Avec .. Faire (With .. Do).
Cette structure s'utilise aussi bien avec une opération d'affectation, de lecture ou d'écriture.

Syntaxe :
Au niveau de l'analyse et de l'algorithme Au niveau du Pascal
Avec variable Faire With variable Do
{ensemble d'actions} Begin
Fin Avec {ensemble d'actions}
End;

Au Niveau de l'algorithme :

Avec élève Faire


{Affectation}
nom ← "Swidi"

{Lecture}
Ecrire ("Entrer le sexe de l'étudiant : ") ; Lire (sexe)

{Ecriture}
Ecrire ("Moyenne : ", moyenne)
Fin Avec

Au Niveau du Pascal :

With etudiant Do
Begin
nom := 'Swidi' ;

Write ('Entrer le sexe de l''élève : ') ; ReadLn (sexe) ;

WriteLn ('Moyenne : ', moyenne) ;


End;

4INFINFRC0001  Page 4 
http://www.najah.com 

Vecteur d'enregistrements
Un tableau ne peut grouper ou contenir que des éléments de même type, et puisque les
éléments d'un enregistrement sont de même type qui est celui de l'enregistrement, donc on
peut utiliser un tableau ou un vecteur d'enregistrements.

Exemple :

Tableau de déclaration des nouveaux types :


Déclaration de la variable T utilisant les enregistrements des élèves :

Type
Fiches = Enregistrement
nom, prénom : Chaîne
sexe : Caractère
numéro : Entier non signé
moyenne : Réel
num_cin : Entier long
Fin Fiches
Tab = Tableau de 30 Fiches {tableau d'enregistrements fiches}
Tableau de déclaration des objets :

Objet Type / Nature Rôle


T Tab Tableau d'enregistrements pour les fiches des élèves

Activité
Un médecin enregistre sur ordinateur les fiches de ses Patients. Une fiche a la la structure
suivante :
- un nom (chaîne de 30 caractères maximum)
- un numéro (entier)
- un numéro de téléphone (10 caractères maximum)
- un code d'assurance (entier non signé).

1/ Ecrire les analyses, les algorithmes des différents modules d'un programme nommé Fiche,
qui permet la saisie et l'affichage de l'enregistrement d'un Patient.
2/ Traduire ce programme en Pascal

1/ Analyses et algorithmes :

Analyse du programme principal

Résultat : Affichage d'une fiche


- Traitement : - Une fiche peut être représentée par une structure d'enregistrement
comportant 4 champs (le nom, le numéro, le numéro de téléphone et le code d'assurance).
- L'affichage des différents champs sera la tâche de la procédure Afficher.

4INFINFRC0001  Page 5 
http://www.najah.com 

- La saisie des différents champs se fera par la procédure Saisir.


Fin Analyse

Algorithme du programme principal


0) Début Fiche
1) Saisir (Patient)
2) Afficher (Patient)
3) Fin Fiche

Tableau de déclaration des nouveaux types

Type
Personne = Enregistrement
nom : Chaîne de 30 caractères
numéro : Entier
tel : Chaîne de 10 caractères
code : Entier non signé
Fin Personne

Tableau de déclaration des objets globaux :

Nom Type / Nature Rôle


Patient Personne Enregistrement pour une fiche personne
Saisir Procédure Saisie des champs
Afficher Procédure Affichage des champs

Analyse de la procédure saisir

Résultat : Saisir les champs


Traitement :
La saisie des différents champs de l'enregistrement se fera par des opérations de lecture avec
l'utilisation de la structure Avec .. Faire, sur la variable Patient.
Patient : représente la variable de l'enregistrement.
Fin Analyse

Algorithme de la procédure Saisir

0) Procédure Saisir (VAR Patient : Personne)


1) Avec Patient Faire
Ecrire ("Entrer le nom de la personne : ") ; Lire (nom)
Ecrire ("Entrer son numéro : ") ; Lire (numéro)
Ecrire ("Entrer son numéro de téléphone : ") ; Lire (tel)
Ecrire ("Entrer le code d'assurance : ") ; Lire (code)

4INFINFRC0001  Page 6 
http://www.najah.com 

Fin Avec
2) Fin Saisir

Analyse de la procédure Afficher

Résultat : Afficher les champs


Traitement :
L'affichage des différents champs de l'enregistrement se fera par des opérations d'écriture
avec l'utilisation de la structure Avec .. Faire, sur la variable Patient.
Fin Analyse.
Algorithme de la procédure Afficher
0) Procédure Afficher (Patient : Personne)
1) Avec Patient Faire
Ecrire ("Nom : ", nom)
Ecrire ("numéro : ", numéro)
Ecrire ("Numéro de téléphone : ", tel)
Ecrire ("Code assurance : ", code)
Fin Avec
2) Fin Afficher

2/ Traduction en Pascal
PROGRAM Fiche ;
USES Crt ;
TYPE Personne = Record
nom : String [30] ;
numero : Integer ;
tel : String [10] ;
code : Word ;
End ;
VAR Patient : Personne ;

{--------------------------------------------------------------------------------------------}
PROCEDURE Saisir (VAR Patient : Personne) ;
BEGIN
With Patient Do
Begin
Write ('Entrer le nom de la personne : ') ; ReadLn (nom) ;
Write ('Entrer son numéro : ') ; ReadLn (numero) ;
Write ('Entrer son numéro de téléphone : ') ; ReadLn (tel) ;
Write ('Entrer son code d’’assurance : ') ; ReadLn (code) ;
End ;
END ;

{--------------------------------------------------------------------------------------------}
PROCEDURE Afficher (Patient : Personne) ;
BEGIN
With Patient Do

4INFINFRC0001  Page 7 
http://www.najah.com 

Begin
WriteLn ('Nom : ', nom) ;
WriteLn ('Numéro : ', numero) ;
WriteLn ('Numéro du téléphone : ', tel) ;
WriteLn ('Code d’’assurence : ', code) ;
End;
END;

{= = = = = = = = = = = Programme Principal = = = = = = = = = = =}
BEGIN
Saisir (Patient) ;
Afficher (Patient);
END.

4INFINFRC0001  Page 8