Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Cours</strong> n° 4 <strong>Ada</strong> les tableaux (2 heures)<br />
1<br />
Thème : Le type tableau.<br />
Le type tableau est un type « composite » (revoir la classification des types cours n°2 page 7). Un type<br />
composite permet de regrouper plusieurs éléments dans une même structure. On verra dans une semaine l’autre<br />
type composite c’est-à-dire le type article (record) cours n°6.<br />
L’intérêt de regrouper, sous une même entité, des éléments que l’on appelle des composants est fort utile<br />
en informatique. L’intérêt des tableaux (on parle aussi de vecteurs quand ils sont mono-indicés) est reconnu<br />
depuis l’avènement des premiers langages (le FORTRAN par exemple). On va voir cette semaine (n°3) en<br />
Algorithmique la « manipulation » des entités MOTS que l’on pourra, en <strong>Ada</strong>, réaliser (on dit aussi implémenter)<br />
avec des tableaux.<br />
Un objet tableau est un objet composé d'éléments qui sont tous du même type. Les éléments sont<br />
accessibles (et repérés) au moyen d'indices (on parle aussi d’index). Il y a donc deux concepts dans un type<br />
tableau <strong>Ada</strong> : le ou les indices du tableau d’une part et les composants du tableau d’autre part.<br />
La définition d'un tableau comportera :<br />
• d’une part la définition du type des indices (type discret seulement) donc : type énumératif ou type entier<br />
• et d’autre part la définition du type des éléments (ou composants) du tableau (tout type sans limite).<br />
En <strong>Ada</strong> (gros apport) nous pourrons définir (voir le D.S. dans le cours n°1) des modèles de type tableau<br />
dans lesquels les domaines des indices sont incomplètement spécifiés (on parle de tableaux non contraints car la<br />
« plage » d’indices est « imprécise »). Mais, de façon effective, on travaillera, finalement (à l’exécution), sur des<br />
tableaux contraints c’est-à-dire dont l’intervalle est connu et borné. Cette notion là n’est pas facile.<br />
De façon générale on a le D.S. définition d’un type tableau (et pour faire « court »!) :<br />
type identificateur is array Contrainte indice<br />
Sous type indice<br />
of Sous type composant ;<br />
Exemples (attention ici : type tableaux non contraints ou modèle de tableaux) :<br />
type T_VECTEUR1 is array (POSITIVE range ) of FLOAT;<br />
type T_VECTEUR2 is array (NATURAL range ) of INTEGER;<br />
type T_VECTEUR_DE_B is array (CHARACTER range ) of BOOLEAN;<br />
type T_MAT is array (T_ENTIER range ,T_ENTIER range ) of FLOAT;<br />
type T_NOM is array (INTEGER range ) of STRING (1..30);<br />
La notation s'appelle boîte (box en anglais) elle indique que l’intervalle des indices est retardée (avec range).<br />
A partir de ces types de base il est possible de déclarer des objets à l'aide de contraintes d'indice.<br />
Exemples (d’instanciation i.e. de déclaration d’objets de type tableau):<br />
VECT_N : T_VECTEUR1 (1..10); -- 10 composants réels<br />
VECT_B : T_VECTEUR_DE_B (‘A’..‘T’); -- 20 composants booléens<br />
D. Feneuille I.U.T. Aix 2002 (cours n°4 fichier COURS4.DOC) 30/06/02