Académique Documents
Professionnel Documents
Culture Documents
I / Introduction :
La variable de type tableau ne peut contenir que des éléments de même type. Lorsque l’on a
des données de types différents avec des liens logiques entre eux, on peut les regrouper dans
un même ensemble appelé enregistrement ou structure.
Exemple :
Décrire le groupe des informations que l’on pourrait lire sur une fiche d’un ouvrage de la
bibliothèque :
FICHE
Une fiche est alors une collection de cinq données élémentaires qui seront appelées des
champs.
Ce type est donc utilisé pour une structure complexe que nous souhaitons désigner par un seul
nom.
II/ Définition :
Un enregistrement est une structure de données composée d’un nombre fixe d’éléments qui
peuvent être différents. Les éléments d’un enregistrement sont appelés champs de
l’enregistrement et ils peuvent être de type simple ou composé.
III/ Déclaration :
Remarque :
Le champ d’un enregistrement peut être à son tour de type composé. C'est-à-dire un champ
peut être de type tableau ou enregistrement.
Exemple :
Var Date : enregistrement
annee : entier ; /* annee, mois, jour :entier ;*/
mois : entier ;
jour : entier ;
Fin enreg ;
b) déclaration du type enregistrement : /* on définit un type et dans var on déclare une
variable */
Exemple :
X : reel ;
Y :reel ;
Fin enregistrement ;
Remarque :
Si l’on doit transmettre un paramètre de type enregistrement dans une action paramétrée, on
choisira de déclarer le type enregistrement au lieu de déclarer une variable enregistrement.
(Même problème que le type tableau).
<Id_Enreg> . <Id_Champ>
Exemples :
Date. Annee2006 ; Date.mois 02 ; Date.jour 25 ;
Exemple :
Type Date = enregistrement
Annee, mois, jour : entier ;
Fin enreg ;
Var D1, D2 :Date ;
On peut écrire : D1 D2 ;
En revanche, il n’est pas permit de tester l’égalité, l’inégalité, < > comme suit :
Si D1=D2 …
Si D1<> D2 … tests non permit
Si D1<D2…
Si D1>D2…
On ne peut faire les testes que champ par champ comme suit :
Si D1.annee>D2.annee Alors …
a) Tableaux d’enregistrements :
Type
Etudiant = enregistrement
Nom, Prenom : chaîne ;
Matricule : entier ;
Moyenne : réel ;
Fin enregistrement ;
Dans une section on a 100 étudiants donc on déclare un tableau de 100 étudiants.
Accès : T[i].nom …
b) Enregistrement de tableaux :
Nous pouvons construire une variable de type enregistrement dont tous ou certains
éléments sont des tableaux.
Le même exemple précédent mais un étudiant peut avoir plusieurs modules et plusieurs
moyennes de chaque module.
On a donc un tableau de 8 modules et un autre de 8 moyennes.
Type
Etudiant = enregistrement
Nom, Prenom : chaîne ;
Matricule : entier ;
Module : tableau[1..8] de chaîne ;
Moyenne : tableau[1..8] de réel ;
Fin enregistrement ;
Var T : tableau[1..100] d’Etudiant ;
Accès : T[i].Module[K] …
T
1 2 3
Nom prenom matricule
c) Enregistrement d’enregistrements :
Type
Date = enregistrement
annee, mois, jour : entier ;
Fin enregistrement ;
Etudiant = enregistrement
Nom, Prenom : chaîne ;
Matricule : entier ;
Date_naissance :Date ;
Moyenne : réel ;
Fin enregistrement ;
Accès : T[i].Date_naissance.annee …
Exercice 1 :
Solution :
Type
a- Point=enregistrement
x,y :reel ;
Fin enregistrement ;
Type
b- Tpoint=tableau[1..100] de point ;
TDist=tableau[1..4950] de reel ; /* somme d’une suite arithmétique
Var
Debut
Ecrire(‘donner l’abscisse du point’) ;
Lire(p.x) ;
Ecrire(‘donner l’ordonnée du point’) ;
Lire(p.y) ;
Fin ;
Debut
m.x(p1.x+p2.x)/2; m.y(p1.y+p2.y)/2 ;
Fin ;
debut
milieu(a,c,m1) ;milieu(b,d,m2) ;
vfaux ;
si distance(m1,m2)<ep alors vvrai ;
fsi ;
parallelv ; /*ou retourne(v) ;*/
fin ;
Debut
K0;
pour i1à N-1 faire
pour ji+1 à N faire
kk+1 ;
Td[k]distance(T[i],T[j]) ;
Fait ;
Fait ;
Fin ;
Debut
MTd[1] ;
Pour i2 à K faire
Si Td[i]<M alors MTd[i] ;fsi ;
Fait ;
MinM ;/*retourne(M) ;*/
Fin ;