Les enregistrements

Le type tableau nous a permis de définir une structure composée de plusieurs éléments, cette structure nous permettrait de réunir les éléments de même type. Mais si nous voulons regrouper les informations n'ayant pas nécessairement le même type au sein d'une même structure, par exemple: les informations concernant un étudiant. Une nouvelle structure appelée enregistrement est plus adaptée pour représenter ce type d'information.

Un enregistrement est un objet composé statique et hétérogène c'est-à-dire qui renferme plusieurs informations qui peuvent être de type différent.
Un enregistrement est défini par un ensemble de données ou élément encore appelé champ.
Les champs sont les données élémentaires ou composées et peuvent être de type différent.


Déclaration

type nom=enregistrement
champ1 : type1
champ2 : type2
. . . . . . . .
champn : type;
fin enregistrement


Exemple:
Déclarons un type étudiant
Application:
Type Etudiant=enregistrement
machine : chaîne
nom : chaîne
prénom : chaîne
sexe : caractère
age : entier
note : réel
fin enregistrement


Utilisation

En général on manipule un enregistrement champ par champ. On accède à un champ de l'enregistrement en indiquant le nom de l'enregistrement suivi du nom du champ. Les deux sont séparés par un point.
Exemple:
Etudiant.matricule
Etudiant.nom
Si un champ de l'enregistrement est d'un type donné alors on peut réaliser sur ce champ toutes les opérations réalisables avec les objets de ce type.
Exemple d'application de valeur
Etudiant.matricule ← '05S001'
Etudiant.nom ← 'toto'
Etudiant.prénom ← 'Paul'
Etudiant.sexe ← 'M'
Etudiant.age ← 19
Etudiant.note ← 12.75

ou bien par lecture
lire(Etudiant.matricule)
lire(Etudiant.nom)

 

 


Application aux vecteurs

 

Nous voulons constituer une base de données des enseignements. Chaque enseignement est caractérisé par:

  • Le code.
  • Le nom.
  • Le prénom.
  • Le grade.
  • Le sexe.

Les enseignants seront stockés dans un vecteur

  1. Donner une déclaration du type enseignant.
  2. Ecrire une procédure sui permet de créer un vecteur de n enseignant.
  3. Ecrire une procédure qui prend en paramètre le vecteur d'enseignement si cet enseignement existe ou pas.
  4. Ecrire une procédure qui affiche la liste des enseignements féminins

Application

  1. Donnons la déclaration du type enseignant
    type enseignant=enregistrement
    code : chaîne
    nom : chaîne
    prénom : chaîne
    grade : chaîne
    sexe : caractère
    fin enregistrement
    vecteur = tableau[1..100] d'enregistrement
  2. Ecrivons une procédure qui permet de créer un vecteur de n enseignement.

    procédure: créer_enseignant(v: vecteur, n: entier)
    début
    pour i=1 à n faire lire(V[i].code)
    lire(V[i].nom)
    lire(V[i].prénom)
    lire(V[i].grade)
    lire(V[i].sexe)
    fin pour
    fin
  3. Ecrivons une procédure qui prend en paramètre le vecteur d'enseignement et le matricule d'un enseignant et qui recherche si cet enseignement existe ou pas.

    procédure: recherche(V: vecteur, n: entier, codeE: chaîne)
    var i: entier
    début
    i←1
    tant que i<= et codeE≠V[i].code faire
    i←i+1
    fin tant que
    si codeE=V[i].code alors
    écrire('Cet enseignant est dans la case N°: ',i)
    sinon
    écrire('Cet enseignant n'existe pas')
    fin si
    fin
  4. Ecrivons une procédure qui affiche la liste des enseignant féminins.

    procédure affiche_femini(V: vecteur, n:entier)
    var i: entier
    début
    pour i=1 à n faire
    si V[i].sexe = 'F' alors
    écrire(V[i].code)
    écrire(V[i].nom)
    écrire(V[i].prénom)
    écrire(V[i].grade)
    fin si
    fin pour
    fin