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 :

exemple d'enregistrement

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
enregistrement : cas 1

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
enregistrement : cas 2

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
enregistrement : cas 3

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).

2 Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *