Algorithme: les enregistrements
Sommaire
- 1- Objectifs
- 2- Présentation
- 3- Déclaration
- 3.1- Type
- 3.2- Remarques
- 3.3- Exercice d'application
- 3.4- Énoncé
- 3.5- Solution proposée
- 4- Utilisation des enregistrements
- 4.1- Accès au champ d’un enregistrement
- 4.2- Exemple
- 4.3- Exercice d'application
- 4.4- Énoncé
- 4.5- Solution proposée
- 4.6- Affectation
- 4.7- Exercice d'application
- 4.8- Enoncé
- 4.9- Solution proposée
- 4.10- En analyse
- 4.11- En pascal
- 4.12- Lecture
- 4.13- Exercice d'application
- 4.14- Énoncé
- 4.15- Solution proposée
- 4.16- Exercice d'application 4
- 4.17- Énoncé
- 4.18- Solution proposée
- 4.19- Écriture
- 4.19.1- Cours Algorithme
Algorithme: Les enregistrements
-
Objectifs
- Connaitre les enregistrements algorithmiques
-
Présentation
- 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 (alphabétique, numérique, logique,…) sous un nom commun.
- A la différence des tableaux, qui ne permettent de grouper que des éléments du même type, les enregistrements permettent de combiner différents types de données.
- Les éléments qui composent un enregistrement sont appelés champs.
- Avant de déclarer une variable enregistrement, il faut avoir au préalable définit son type, c’est à dire le nom et le type des champs qui le compose.
- Le type d’un enregistrement est appelé type structuré.
-
Déclaration
-
Type
-
Remarques
- Les types enregistrements font partie des types structurés. Concernant les champs, il faut savoir que ceux-ci peuvent être de n’importe quel type (sauf un type fichier).
- Mais :
- Il n’existe pas de constante d’un type enregistrement.
- Il n’existe pas d’opération (autre que l’affectation et le passage comme paramètre) sur les enregistrements.
- Les seules expressions d’un type enregistrement sont les variables de ce type.
- Il n’y a pas de fonction (même prédéfinie) à résultat d’un type enregistrement.
-
Exercice d’application
-
Énoncé
- Déclarer une variable enregistrement représentant un nombre complexe.
-
Solution proposée
-
Utilisation des enregistrements
-
Accès au champ d’un enregistrement
- Alors que les éléments d’un tableau sont accessibles au travers de leur indice, les champs d’un enregistrement sont accessibles à travers leur nom, grâce à l’opérateur ‘.’
- Un tel champ est défini par le nom de l’enregistrement ainsi que par son nom propre.
-
Exemple
- apprenant.nomprenom: représente le champ nomprenom de l’enregistrement apprenant.
- Le nom d’un champ est TOUJOURS précédé du nom de l’enregistrement auquel il appartient.
- On ne peut pas trouver un nom de champ tout seul, sans indication de l’enregistrement.
- Les champs d’un enregistrement, tout comme les éléments d’un tableau, sont des variables à qui on peut faire subir les mêmes opérations (affectation, saisie, affichage,…).
-
Exercice d’application
-
Énoncé
- Programme de saisie des données concernant les apprenants appr1 et appr2, puis affichage de la différence d’âge entre ces deux apprenants.
-
Solution proposée
-
Affectation
- L’affectation de valeurs aux différents champs d’une variable enregistrement se fait comme suit :
Variable.champ<--- valeur -
Exercice d’application
-
Enoncé
-
Solution proposée
-
En analyse
-
En pascal
-
Lecture
- La lecture des valeurs des différents champs d’une variable enregistrement se fait comme suit :
-
Exercice d’application
-
Énoncé
- Reprenez l’exercice d’application 2 et écrivez les instructions permettant de saisir à partir du clavier les champs de la variable enregistrement E.
-
Solution proposée
-
Énoncé
- Soit la structure apprenant
- Elle est constituée par le nom (chaîne de 30 caractères maximum), le numéro de téléphone (10 caractères maximum), le numéro de carte d’identité (entier non signé).
- Ecrivez un programme qui saisit puis affiche les enregistrements pour 3 personnes.
-
Solution proposée
-
Écriture
-
Nom_Type = Enregistrement
Champ1 : Type1
Champ2 : Type2
…
ChampN : TypeN
Fin Nom_Type
-
Complexe = Enregistrement
P_réelle : Réel
P_imaginaire : Réel
Fin Complexe
-
Type
Structure tpeappr
nom : chaîne
prénom : chaîne
âge : entier
FinStructure
Var
appr1, appr2: tpeappr
Début
-
Aff « Entrez le nom puis l’age de l’apprenant 1 »
Saisir appr1.nom, appr2.age // il est impossible d’écrire Saisir pers1
Aff « Entrez le nom puis l’âge de l’apprenant 2 »
Saisir appr2.nom, appr.age
Aff « La différence d’âge entre « , appr1.nom, » et « , appr2.nom, » est de »
Si appr1.age > appr2.age
Alors Aff appr1.age – appr2.age, » ans »
Sinon Aff appr2.age – appr1.age, » ans »
FinSi
Fin
-
1. Déclarer en algorithmique et en Pascal une variable enregistrement pour représenter la fiche d’un apprenant sachant qu’elle contient les informations suivantes : nom,Prénom, Sexe (F ou G), date de naissance et la note de l’informatique.
2. Affecter respectivement les valeurs suivantes à cette variable :‘’Hajji’’, ‘’Riadh’’, ‘’F’’, ‘’27 /11/1983’’ et 13.25
1. Déclaration d’une variable enregistrement
Type
Fiche = Enregistrement
Nom, prénom : Chaîne
sexe : Caractère
date_nais : chaîne
note: Réel
Fin Fiche
Type
Fiche = Enregistrement
Nom, prénom : Chaîne
sexe : Caractère
date_nais : chaîne
note: Réel
Fin Fiche
2. Affectation des valeurs à cette variable :
E.nom<-- ‘’Riadh’’
E. prénom<-- ‘’Riadh’’
E. sexe<-- ‘’F’’
E. date_nais<-- ‘’27 /11/1983’’
E. note<--13.25
E.nom<-- ‘’Riadh’’
E. prénom<-- ‘’Riadh’’
E. sexe<-- ‘’F’’
E. date_nais<-- ‘’27 /11/1983’’
E. note<--13.25
1. Déclaration d’une variable enregistrement
TYPE fiche = Record Nom, prenom : String ; sexe : Char ; date_nais : String ; note : Real ; End; VAR E: Fiche;
2. Affectation des valeurs à cette variable :
E.nom := ’Hajji’ ; E. Prénom := ‘Riadh’ ; E. Sexe := ‘F’ ; E. date_nais := ’27 /11/1983’ ; E. note := 13.25 ;
Il est possible d’affecter une variable enregistrement dans une autre à condition qu’ils aient
la même structure.
En analyse | En algorithme | En Pascal |
Variable.champ = donnée | Lire (Variable.champ) | Readln (Variable.champ) ; |
En analyse :
-
E.nom = Donnée (« Entrer le nom de l’étudiant : »)
E.prénom = Donnée (« Entrer le prénom de l’étudiant : »)
En algorithme :
-
Ecrire (« Entrer le nom de l’étudiant : ») ; lire (E.nom)
Ecrire (« Entrer le prénom de l’étudiant : ») ; lire (E. prénom)
En Pascal :
-
Write (’Entrer le nom de l’ ’étudiant :’) ;
Readln (E.nom) ; …
Exercice d’application 4
Algorithme saisie_affich; type apprenant = enregistrement nom: chaine[30]; num_tel, num_c_b: entier; fin; var T: tableau[1..3] de Info; i: entier; debut pour i allant de 1 à 3 faire avec T[i] faire lire (nom, num_tel, num_c_b); finavec; finpour; pour i allant de 1 à 3 faire avec T[i] faire ecrire( nom, num_tel, num_c_b); finavec; finpour; fin.
-
L’écriture des valeurs des différents champs d’une variable enregistrement se fait comme suit :
En analyse et en algorithme | En Pascal |
Ecrire (Variable.champ) | Write (Variable.champ) ; |