Académique Documents
Professionnel Documents
Culture Documents
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
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
• Avant de déclarer une variable de type enregistrement, il faut avoir au préalable dé nit
convenablement ce type
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 ;
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
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 “ .
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
2. Var z: Complexe ;
3. Début
7. Lire (z.partie_imaginaire);
9. z.module = racine_carrée(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 ;
3. Début
5. Lire (etu.nom);
7. Lire (etu.redoublant);
9. Lire (etu.moyenne);
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 ;
4. Début
5. ens.nom = "Bona";
6. etu.nom = "Mispa";
7. camarade.nom = "Manu";
9. etu.groupeTD[0] = camarade;
11. Fin
10
RÉFÉRENCES