Vous êtes sur la page 1sur 11

ENREGISTREMENTS

Cheikh KACFAH
cheikh.kacfah@institutsaintjean.org

CONTEXTE: WHY RECORDS?
• Rendu à ce stade, toutes les variables que nous manipulons sont (de types) atomiques
(entier, réel, chaîne de caractères, booléen) ou des tableaux de données de types
atomique

• Cependant, tous ces types sont prédé nis. Ils existent et nous ne faisons que les
utiliser tels quel

• Ainsi, il n’est pas possible avec ces types de représente

• Un nombre complexe (partie réelle, partie imaginaire, module, etc.

• Un étudiant (nom, prénom, date de naissance, matricule, classe, etc.

• Une unité d’enseignement (code, libellé, crédits, etc.)


2
s

fi
r

DÉFINITION
• Un enregistrement est un type de données dé ni par l’utilisateur et qui permet de
grouper un nombre ni d’éléments, de types éventuellement différents (alphabétique,
numérique, logique, etc.) sous un nom commun

• Tableau: permet de représenter une collection d’éléments d’un seul et même type ≠
Enregistrement: permet de combiner en un nouveau type des éléments pouvant être
de types différents les uns des autres

• Les éléments qui composent un enregistrement sont appelés champs

• Avant de déclarer une variable de type enregistrement, il faut avoir au préalable dé nit
convenablement ce type

• Le type d’un enregistrement est aussi appelé type structuré

3
fi
.

fi
.

fi
DÉCLARATION
Exemple
Type nomDuType : Enregistrement
Algoritme gestionUniversite
nomChamp_1 : typeChamp_1, //Pas de ;
nomChamp_2 : typeChamp_2,
Type Étudiant : Enregistrement
… nom : chaîne de caractère,
nomChamp_N : typeChamp_N prenom : chaîne de caractère,
Fin Enregistrement ; redoublant : booléen,
moyenneBac : réel
Fin Enregistrement ;

Var i, n : entier ;

📝 On dé nit le type dans la Var mispa : Étudiant ;

partie déclaration
Début

Fin

4





fi












REMARQUES
• Les champs d’un enregistrement peuvent être de n’importe quel
type et donc en plus des types usuels, ils peuvent être des
tableaux* ou … de type enregistrement

• Aucune opération élémentaire n’est dé nie sur un type enregistremen

• Aucune fonction prédé nie n’est dé nie sur un type enregistremen

• ⚠Les seules opérations sur une variable de type enregistrement


sont l’affectation dans la variable ou dans ses champs et
l’utilisation de la valeur des champs dans diverses expressions⚠

5
fi
fi
fi
ACCÈS AUX CHAMPS
• On accède à un champ d’un enregistrement grâce à son nom et via l’opérateur “ .

• Ainsi on accèdera au champ champ_N de la variable de type enregistrement


var_enregistrement par l’instructio

var_enregistrement champ_N.
• Impossible d’accéder au champ sans passer la variable de type enregistrement

• On peut effectuer sur ou avec un champ, toutes les opérations autorisées par le
type de ce champ. ⚠ N’oubliez pas que le champ peut être de type
enregistrement ⚠🤨

6
n

ACCÈS AUX CHAMPS: EXEMPLE I


1. Type Complexe : Enregistrement
partie_réelle : réel,
partie_imaginaire : réel,
module : réel
Fin Enregistrement ;

2. Var z: Complexe ;

3. Début

4. Écrire ("Entrer la partie réelle du nombre complexe ") ;

📝 On peut effectuer sur ou avec un


5. Lire (z.partie_reelle);
champ, toutes les opérations
autorisées par le type de ce champ
6. Écrire (" Entrer la partie imaginaire du nombre complexe ") ;

7. Lire (z.partie_imaginaire);

8. z.module = z.partie_réelle*z.partie_réelle + z.partie_imaginaire*z.partie_imaginaire ;

9. z.module = racine_carrée(z.module) ;

10. Écrire(“Le module de votre nombre complexe est “ + z.module) ;

11. Fin
7




ACCÈS AUX CHAMPS: EXEMPLE II
1. Type Étudiant : Enregistrement
nom : chaîne de caractère,
redoublant : chaîne de caractère,
moyenne : réel
Fin Enregistrement ;

2. Var etu : Étudiant ;

3. Début

4. Écrire (“Entrer le nom de l’étudiant“) ;

5. Lire (etu.nom);

6. Écrire (“Est-il redoublant? OUI ou NON“) ;

7. Lire (etu.redoublant);

8. Écrire (“Quelle est sa moyenne nale?“) ;

9. Lire (etu.moyenne);

10. Si etu.moyenne >= 10.0 Alors Écrire(etu.nom + “ a réussi “) ;

11. Sinon Écrire(etu.nom + “ va redoubler, si autorisé “);

12. FinSi

13. Fin
8



fi

⚠ PRÉCISIONS INUTILES
Faites attention à ce que vous manipuler… Faites ce qui est permis par la nature de ce que
vous manipule

1. Étant donné une variable, par exemple thing, determiner son type

2. Est-ce que thing est une variable atomique (réel, entier, booléen, chaine de
caractère)? Si c’est le cas alors vous savez vous en servir. #FI

3. Est-ce que thing est un tableau? Si c’est le cas, alors accéder, via son indice, à
l’élément de thing que vous voulez manipuler (exemple thing[i]) et suivez le même
questionnement pour cette nouvelle variable (Commencez à l’étape1 ci-dessus

4. Est-ce que thing est une variable d’un type enregistrement? Dans ce cas, accéder le
champ de thing que vous voulez manipuler (par exemple thing.some eld) et suivez
le même questionnement pour cette nouvelle variable (Commencez à l’étape1 ci-
dessus)

9
z

fi
)

EXEMPLE
1. Type Enseignant : Enregistrement
nom : chaine de caractère
Fin Enregistrement ;

2. Type Etudiant : Enregistrement


nom : chaine de caractère,
groupeTD : tableau de 4 Etudiant,
enseignantResponsable : Enseignant
Fin Enregistrement ;

3. Var etu, camarade: Etudiant ; Var ens:Enseignant;

4. Début

5. ens.nom = "Bona";

6. etu.nom = "Mispa";

7. camarade.nom = "Manu";

8. etu.enseignantResponsable = ens; // etu.enseignantResponsable.nom = "Bona";

9. etu.groupeTD[0] = camarade;

10. etu.groupeTD[0].groupeTD[0] = etu; //(camarade*) Que fait cette instruction?

11. Fin
10






RÉFÉRENCES

Ce cours est inspiré du cours ci-aprè

• Algorithmique: les enregistrements. http://


apcpedagogie.com/

Vous aimerez peut-être aussi