Vous êtes sur la page 1sur 11

STRUCTURE DE DONNEES ET ALGORITHMES

FONDAMENTALS

Chapitre 8:
Les enregistrement (structures) et
Semestre I
Niveau 1 Année:
énumérations
Licence Info
DUT Info IG
DUT Info Maintenance
Sommaire

1. Introduction, Définition et déclaration d’un tableau

2. Accès à un élément du tableau

3. Création d’un tableau

4. Edition d’un tableau

5. Les différentes opérations possibles sur les tableaux

6. Les tableaux à deux dimensions (Matrices)

13/04/2023 2
1. Introduction
Dans la première partie de ce module (Initiation à l’algorithmique), nous avons vu et manipulé les types simples de
données (entier, réel, caractère, booléen), le type Tableau et le type Chaîne de caractères. Ce sont les types prédéfinis
d’un langage de programmation (ils existent tels quels).

Tous les langages de programmation offrent à l’utilisateur la possibilité de définir de nouveaux types de données plus
sophistiqués, permettant d’imaginer des traitements à la fois plus performants et plus souples. C’est ce que nous
étudierons dans ce chapitre.

Nous avons déjà vu comment le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même
type, chacune d’entre elles étant repérée par un indice.

L’enregistrement, quant à elle, va nous permettre de désigner sous un seul nom un ensemble de valeurs pouvant
être de types différents. L’accès à chaque élément de la structure (nommé Champ ou membre) se fera, cette fois, non
plus par une indication de position, mais par son nom au sein de la structure.

13/04/2023 3
2. Enregistrement et variable de type enregistrement
Il est souvent intéressant de pouvoir manipuler dans un tableau plusieurs types différents.
Par exemple pour gérer les 50 étudiants d’une école comprenant les informations suivantes : (Matricule : entier ; Nom :
Chaîne [10] ; Prénom : Chaîne [15] ; Age : entier; Taille : Réel; etc.) Etant donné les types formés par ces informations
sont différents, la première idée qui nous vient à l’esprit est d’utiliser quatre (5) tableaux :

Constante Max = 50 Quels sont les inconvénients d’une telle définition ?


Type
TabMatricule = Tableau [1..Max] d’entier  La déclaration est fastidieuse. Imaginez pour des
TabNom = Tableau [1..Max] de chaîne [10] informations qui nécessitent 15 tableaux combien de
TabPrenom = Tableau [1..Max] de chaîne [15] lignes nous faudrait-il ?
TabAge = Tableau [1..Max] d’entier
TabTaille = Tableau [1..Max] de réel  Au niveau des algorithmes de recherche, de
Variable : // Puis déclarer les variables tableaux…
suppression, d’ajout, de modification et de tri, tous les
TMatricule : TabMatri
tableaux doivent avoir le même indice. Sinon il y
TNom : TabNom
TPrenom : TabPrenom aurait des informations incohérentes.
TAdresse : TabAdress
 Toute modification apportée sur l’un de ces tableaux
doit impérativement être effectuée sur les autres.
13/04/2023 4
2. Enregistrement et variable de type enregistrement
 Déclaration d’une structure Ainsi la déclaration ci-dessus devient alors

Constante Max = 50
La structure générale de la déclaration d’un
enregistrement est la suivante : Type Etudiant = Structure
Matricule : entier
Type NomEnregistrement = Structure
Nom : Chaîne [10]
Champ1 : Type1
Prenom : Chaîne [15]
Champ2 : Type2
Age : Entier
...
Taille : Réel
ChampN : TypeN
FinStructure
FinStructure
Variables :
Variables :
Personne : Etudiant
NomVariable : NomEnregistrement
E : Etudiant
TabEtudiant : Tableau [1..Max] d’Etudiant // Tableau
d’enregistrement

Désormais, tous les champs sont « logés » au niveau d’un seul tableau. Etudiant devient alors ce que
13/04/2023 l’on appel type défini par l’utilisateur. 5
2. Enregistrement et variable de type enregistrement
 Représentation graphique

Matricule Nom Prénom Age Taille


Personne
01 ‶OYERE″ Morel 40 1.85

Matricule Nom Prénom Age Taille


E
02 ‶TATY″ Eric 23 1.70

TabEtudiant

Indices 1 2
Champs Matricul
e
Nom Prénom Age Taille Matricule Nom Prénom Age Taille

Valeurs 01 ‶OYERE″ ‶Morel″ 40 1.85 02 ‶TATY″ ‶Éric″ 23 1.70

13/04/2023 6
2. Enregistrement et variable de type enregistrement
 Manipulation des variables de types structures
La manipulation (Accès) d’une variables de type structure se fait membre par membre. Et l’accès à un membre structure

se fait grace à l’opérateur point ( . ) comme suit : NomVariable . membre NomTableau[indice].membre

Où « NomVariable », « NomTableau » est la variable de type « NomEnregistrement » et « membre » est un champ de


la structure manipulée. Les deux étant séparés par un point.

 Exemple :  Affectation des valeurs :


Personne.Matricule Si l’on veut affecté des valeurs à la variable Personne, il suffit de faire :
Personne.Nom Personne.Matricule  01 ; Personne.Nom  ‶OYERE" ainsi de
Personne.Prénom suite…
Si deux enregistrements ont la même structure (Enreg1 et Enreg2) pour
Personne.Age
effectuer l’affection de Enreg2 à Enreg1, nous pouvons utiliser l’instruction
Personne.Taille suivante :
TabEtudiant[1].Matricule Enreg1  Enreg2 . Dans le cas contraire elle s’effectue champs par champs.
TabEtudiant[1].Nom
13/04/2023 7
3. Structure membre d’une autre structure
Une structure peut figurer parmi les membres d’une autre structure. Dans ce cas, elle doit être déclarée avant la structure
qui la contient.
Exemple : Type Date = Structure «DateNaissance» est une variable structure de type « Date », membre
Jour : entier de la structure « Etudiant ». Dans ce cas, la structure « Date » est
Mois : Chaîne [9] déclarée obligatoirement avant la structure « Etudiant ».
Année : Chaîne [4]
Lorsqu’un membre d’une structure est lui-même une structure, on
FinStructure
accède alors à ce membre comme suit :
Type Etudiant = Structure
Variable Structure.Variable sous Structure.membre 
Matricule : entier
Nom : Chaîne [10] Exemple : Personne.DateNaissance.jour
Prénom : Chaîne [15] Où « Personne » est une variable de type « Etudiant ».
Age : Entier Dans le cas d’un tableau, l’accès se fait comme suit :
Taille : Réel
DateNaissance : Date Nom Tableau[indice].Variable sous Structure.membre

13/04/2023 8
3. Structure membre d’une autre structure
Une structure peut figurer parmi les membres d’une autre structure. Dans ce cas, elle doit être déclarée avant la structure
qui la contient.
Exemple : Type Date = Structure
Dans le cas d’un tableau, l’accès se fait comme suit :
Jour : entier
Mois : Chaîne [9] Nom Tableau[indice].Variable sous Structure.membre
Année : Chaîne [4]
FinStructure Exemple : TabEtudiant [i]. DateNaissance.jour

Type Etudiant = Structure Où « TabEtudiant [i] » fait référence au ièm élément du tableau
Matricule : entier «TabEtudiant» de type « Etudiant».
Nom : Chaîne [10]
Prénom : Chaîne [15]
Age : Entier
Taille : Réel
DateNaissance : Date
13/04/2023 9
4. Algorithme sur les structure

Tous les algorithmes vus sur les tableaux s’appliquent également sur les enregistrements, donc on pourra écrire les
programmes suivants :
Insertion, Recherche, Suppression, Mise à jour, Affiche… des éléments dans une structure. Ainsi que les opérations
sur plusieurs structures.

13/04/2023 10
Conclusion
 Avantages : accès direct au iéme élément.

 Inconvénients : les opérations d’insertion et de suppression sont impossibles


osauf si on crée un nouveau tableau, de taille plus grande ou plus petite (selon l'opération).
Il est alors nécessaire de copier tous les éléments du tableau original dans le nouveau
tableau. Cela fait donc beaucoup d'opérations.

13/04/2023 11

Vous aimerez peut-être aussi