09.11.2014 Views

Cours Ada 1 - Libre

Cours Ada 1 - Libre

Cours Ada 1 - Libre

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!