Introduction
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 ,enregistrements en algorithmique, est plus adaptée pour représenter ce type d’information.
Les enregistrements en algorithmique sont des structures de données dont les éléments peuvent être de différents types et qui se rapportent à la même entité sémantique. 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 composent. Le type d’un enregistrement est appelé type structuré. (Les enregistrements sont parfois appelé structures, en analogie avec le langage C).
Exemple :

I-Enregistrements en algorithmique : Définition
Jusqu’à présent, nous n’avons utilisé que des types primitifs (caractères, booleen, entiers, réels, chaînes) et des tableaux de types primitifs. Mais il est possible de créer nos propres types, puis de déclarer des variables ou des tableaux d’éléments de ce type.
Pour ce faire, il faut déclarer un nouveau type, fondé sur d’autres types existants. Après l’avoir défini, on peut alors utiliser ce type structuré comme tout autre type normal en déclarant une ou plusieurs variables de ce type. Les variables de type structuré sont appelées enregistrements.
La déclaration des types structurés se fait, dans les algorithmes, avant la déclaration des variables.
Syntaxe : Nom Enregistrement: Enregistrement Nom Champ 1 : Type Champ 1 Nom Champ 2 : Type Champ 2 ... Nom Champ n : Type Champ n Fin Enregitrement | Exemple : Stagiaire : enregistrement code_inscription: entier nom:chaine prenom:chaine groupe:chaine Fin enregistrement |
II- Déclaration d’un enregistrement à partir d’un type structuré :
Une fois qu’on a défini un type structuré, on peut déclarer des variables enregistrements exactement de la même façon que l’on déclare des variables d’un type primitif.
Syntaxe Nom Var : Nom Enregistrement | Exemple : S1 : Stagiaire |
III- Accès aux champs d’un enregistrement
Les champs des enregistrements en algorithmique sont accessibles à travers leur nom, grâce à l’opérateur ’.’
Nom Var.NomChamp représente la valeur mémorisée dans le champ de l’enregistrement Par exemple, pour accéder au groupe de la variable S1, on utilise l’expression : S1.groupe
Remarque : la lecture d’une telle expression se fait de droit à gauche : le groupe du stagiaire S1.
Attention : le nom d’un champ est TOUJOURS précédé du nom de la variable déclarée avec le type enregistrement auquel il appartient. On ne peut pas trouver un nom de champ tout seul, sans indication de la variable.
Exercice :
Écrire un algorithme qui permet la saisie des données (nom, prénom et âge) concernant les personnes pers1 et pers2, puis affichage de la différence d’âge entre ces deux personnes
IV- Enregistrements en algorithmique : Cas particuliers
IV-1 Un champ de type structuré :
Un type structuré peut être utilisé comme type pour des champs d’un autre type structuré
Exemple : Déclarer une structure Personne qui contient les champs : nom , prenom et Date de Naissance ( composée du jour, mois, année ).
Une date correspond donc à une entité du monde réel qu’on doit représenter par un type enregistrement à 3 champs. Si on déclare le type date au préalable, on peut l’utiliser dans la déclaration du type personne pour le type de la date de naissance.
Solution : date :enregistrement jour: entier mois: entier année: entier Fin enregistrement personne : enregistrement nom: chaîne dateNaissance:date nationalité : chaine Fin enregistrement

Pour accéder à l’année de naissance d’une personne p1, il faut utiliser deux fois l’opérateur ‘.’ : p1.dateNaissance.année : l’année de la date de naissance de la personne p1.
Exercice : Définir la structure fournisseur et la structure Produit tel que:
– Un fournisseur est caractérisé par son code, sa raison sociale et son numéro de téléphone.
– un produit est caractérisé par son code, son libellé, et son prix. Aussi, Un produit est livré par un seul fournisseur. Afficher ensuite, le numéro de téléphone du fournisseur d’un produit p.
IV-2 Un champ de type tableau :
Il est possible aussi qu’un champ de type structuré soit de type tableau.
Exemple : Créer une structure ville qui contient les champs suivant (altitude, type de climat, … ). Certains de ces critères peuvent être mémorisés pour chaque mois de l’année (par exemple température moyenne, …)
1- Donner la définition de la structure Ville
2- déclarer une ville MaVille et initialiser les infos de la variable MaVille :
Solution: Ville : enregistrement Nom : chaîne Altitude : entier Climat : Chaîne Temp : tableau[1..12] de réel //température moyenne par mois Fin enregistrement MaVille : Ville Debut Ecrire "Donner le nom, le type de climat et l’altitude de la ville : " lire MaVille.Nom, MaVille.Climat, MaVille.Altitude Ecrire "entrer les températures moyennes sur les 12 mois " Pour i allant de 1 à 12 Faire Lire MaVille.Temp[i] Fin Pour Fin

Exercice :
Un étudiant sera identifié par son numéro d’étudiant(NE), son nom, son prénom, sa date de naissance (qui sera décomposée en jour,mois et année), un tableau contenant les moyennes de 5 modules .
Écrire un algorithme qui permet de définir les structures de données nécessaires, lire des informations d’un étudiant et afficher ces informations
IV-3 Tableau de variables structurées :
Il arrive souvent qu’on veut traiter non pas un seul enregistrement mais plusieurs.
Exemple :
on veut traiter un groupe de personne. Donc, On va créer un tableau qui regroupe toutes les personnes du groupe. Il s’agit alors d’un tableau d’enregistrement en algorithmique. Les colonnes sont appelées champs et les lignes enregistrements.
Solution: personne : enregistrement nom: chaîne age: entier Fin enregistrement Tableau groupe[20] : personne
Chaque élément du tableau est une variable structurée, contenant plusieurs variables de type différent. On accède à une variable structurée par son indice dans le tableau :
– groupe[2] représente la deuxième personne du groupe
– groupe[2].nom représente le nom de la deuxième personne du groupe
IV-4 Un champ de type tableau d’enregistrements:
Les tableaux d’enregistrements peuvent aussi être eux même servir de type dans un autre type structuré
Exemple :
Dans une entreprise, on veut pouvoir connaître les enfants des employés et leur date de naissance. On suppose que le nombre d’enfant maxi d’un employé est de 10.
Solution : Date :enregistrement Journaiss : entier Moisnaiss : entier Anneenaiss :entier fin enregistrement Enfant :enregistrement Nom : chaîne Prénom : chaîne dateNaiss :Date Fin enregistrement Employé :enregistrement Nom : chaîne Prénom : Chaîne … Nbenf : entier //nombre d'enfants enfs : tableau[1..10] d'Enfant Fin enregistrement

On pourrait déclarer un tableau d’Employé. Ce qui ferait des tableaux imbriqués les uns dans les autres…
Tableau Employes[100] :Employe
Pour afficher par exemple les anniversaires de tous les enfants de l’employé d’indice i, il faudrait parcourir le tableau de ses enfants (avec un autre indice que i).
Si (Employes [i].NbEnf <> 0 ) Alors//l’employé a des enfants
Pour j allant de 1 a Employes [i].NbEnf
Ecrire Employes [i].enfs[j].Prénom
Ecrire “anniversaire le “, Employes [i].enfs[j].dateNais.journaiss, Employes [i].enfs[j].dateNAis.mois
Fin Pour
Sinon Ecrire “l’employé “, Employes [i].Nom, ” n’a pas d’enfant” Fin Si
Vous pouvez suivre notre liste des vidéos sur l’algorithmique sur notre chaine youtube 9raytifclick (Darija: arabe marocaine) : Cours sur les algorithmes.
Aussi, si vous voulez commencer l’apprentissage d’un langage de programmation, voilà notre cours : Langage Python Niveau 1 qui sera très utile pour vous (il vous aide à pratiquer tous les éléments vu dans notre cours d’algorithmique).
Merci pour vos efforts.
Merci pour vos efforts.