Structures et enregistrements
1. Principe
Les tableaux sont certes très pratiques, mais ils ne permettent pas toujours de répondre efficacement à tous les
besoins de stockage. Un tableau est une structure de données dont tous les éléments sont de même type. Que faire
quand vous avez besoin de placer dans une structure de type tableau des enregistrements de types différents ?
Comme exemple concret, prenez un catalogue de produits dans un magasin spécialisé. Un article est décrit à l’aide
d’une référence, un nom (libellé) et un prix. Les deux premiers sont des chaînes de caractères, le dernier un nombre
réel. Comment se représenter cela avec des tableaux ? Il faudrait trois tableaux : un pour les références, un autre pour
les libellés et un troisième pour les prix. L’indice de l’article devrait être identique pour les trois tableaux.
C’est possible, faisable, mais en pratique totalement ingérable dès qu’il s’agit d’aller un peu plus loin que de simples
traitements. Quid des tri ? Quid des recherches ? Ca devient difficile. Il faudrait donc une sorte de métatype particulier
qui pourrait regrouper en un seul ensemble des variables de types différents.
Ces métatypes existent. Ils s’appellent des structures, ou types structurés, et permettent de décrire des
enregistrements. Les enregistrements sont en fait des structures de données composées d’éléments de types
différents ou non. Ces structures composées de plusieurs éléments forment une entité unique qui est appelée un type
structuré.
Autrement dit, vous pouvez créer vos propres types de données en combinant d’autres éléments de types différents
ou non, et créer des variables de ce nouveau type, qu’on appelle des enregistrements. Les différents éléments
contenus dans un type structuré sont appelés des champs.
2. Déclaration
a. Type structuré
Le type structuré est opposable aux types dit primitifs vus jusqu’à présent. Un type structuré peut contenir des
éléments de types primitifs (entiers, réels, chaînes, caractères), des tableaux, mais aussi des éléments d’autres types
structurés. Ceci permet une infinité de nouveaux types, pour tous les cas de figures.
Un type structuré doit être déclaré et défini avant les variables pour qu’il puisse être utilisé pour définir des
enregistrements. Le type structuré se déclare donc entre les constantes et les variables. Si l’algorithme contient des
sousprogrammes, vous déclarerez les types structurés hors du programme et des sousprogrammes, c’estàdire
tout en haut de celuici. La structure est déclarée dans une section particulière sous le motclé "Type", entre les
motsclés Structure et FinStruct.
Type
Structure nom_type
champ1:type_champ1
champ2:type_champ2
...
Champn :type_champn
FinStruct
q Chaque structure porte un nom. Ce nom sera utilisé pour déclarer des enregistrements.
q Une structure peut contenir 1 à n champs, du même type ou de types différents. Une structure à un seul
champ est en soi totalement inutile.
La structure pour décrire un article serait donc quelque chose comme :
Type
Structure tarticle
ref:chaîne
libelle:chaine
prix:réel
FinStruct
b. Enregistrement
- 1 -
© ENI Editions - All rigths reserved - Jonifar lina
117
1. Principe
Les tableaux sont certes très pratiques, mais ils ne permettent pas toujours de répondre efficacement à tous les
besoins de stockage. Un tableau est une structure de données dont tous les éléments sont de même type. Que faire
quand vous avez besoin de placer dans une structure de type tableau des enregistrements de types différents ?
Comme exemple concret, prenez un catalogue de produits dans un magasin spécialisé. Un article est décrit à l’aide
d’une référence, un nom (libellé) et un prix. Les deux premiers sont des chaînes de caractères, le dernier un nombre
réel. Comment se représenter cela avec des tableaux ? Il faudrait trois tableaux : un pour les références, un autre pour
les libellés et un troisième pour les prix. L’indice de l’article devrait être identique pour les trois tableaux.
C’est possible, faisable, mais en pratique totalement ingérable dès qu’il s’agit d’aller un peu plus loin que de simples
traitements. Quid des tri ? Quid des recherches ? Ca devient difficile. Il faudrait donc une sorte de métatype particulier
qui pourrait regrouper en un seul ensemble des variables de types différents.
Ces métatypes existent. Ils s’appellent des structures, ou types structurés, et permettent de décrire des
enregistrements. Les enregistrements sont en fait des structures de données composées d’éléments de types
différents ou non. Ces structures composées de plusieurs éléments forment une entité unique qui est appelée un type
structuré.
Autrement dit, vous pouvez créer vos propres types de données en combinant d’autres éléments de types différents
ou non, et créer des variables de ce nouveau type, qu’on appelle des enregistrements. Les différents éléments
contenus dans un type structuré sont appelés des champs.
2. Déclaration
a. Type structuré
Le type structuré est opposable aux types dit primitifs vus jusqu’à présent. Un type structuré peut contenir des
éléments de types primitifs (entiers, réels, chaînes, caractères), des tableaux, mais aussi des éléments d’autres types
structurés. Ceci permet une infinité de nouveaux types, pour tous les cas de figures.
Un type structuré doit être déclaré et défini avant les variables pour qu’il puisse être utilisé pour définir des
enregistrements. Le type structuré se déclare donc entre les constantes et les variables. Si l’algorithme contient des
sousprogrammes, vous déclarerez les types structurés hors du programme et des sousprogrammes, c’estàdire
tout en haut de celuici. La structure est déclarée dans une section particulière sous le motclé "Type", entre les
motsclés Structure et FinStruct.
Type
Structure nom_type
champ1:type_champ1
champ2:type_champ2
...
Champn :type_champn
FinStruct
q Chaque structure porte un nom. Ce nom sera utilisé pour déclarer des enregistrements.
q Une structure peut contenir 1 à n champs, du même type ou de types différents. Une structure à un seul
champ est en soi totalement inutile.
La structure pour décrire un article serait donc quelque chose comme :
Type
Structure tarticle
ref:chaîne
libelle:chaine
prix:réel
FinStruct
b. Enregistrement
- 1 -
© ENI Editions - All rigths reserved - Jonifar lina
117
