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.

6<br />

Attention le rang (POS) du premier élément d’un énumératif est égal à 0. Par contre l'attribut POS sur un type (ou<br />

un sous type) entier est l'opérateur « identité » ⇒ INTEGER'POS (L_ENTIER) est égale à la valeur de la<br />

variable L_ENTIER. Exemple : INTEGER’POS(-5) vaut -5. A retenir!<br />

Rappel : les types prédéfinis CHARACTER et BOOLEAN sont en fait des types énumératifs. Ainsi :<br />

CHARACTER'POS('A')<br />

CHARACTER'VAL(65)<br />

= 65 et<br />

= 'A'<br />

Les types discrets : (il s’agit de la réunion des types entiers et énumératifs)<br />

les types entiers<br />

les types énumératifs<br />

(type prédéfini (INTEGER par exemple) et les types entiers construits)<br />

(type prédéfini (comme BOOLEAN ou CHARACTER) et construits)<br />

Les types scalaires : Il s’agit de la réunion des types discrets et des types réels.<br />

Ce type scalaire est caractérisé par les 4 propriétés suivantes (notez donc que ces 4 propriétés s’appliquent à tous<br />

les types discrets vus précédemment) :<br />

• Pour ce type sont définies l'affectation et les opérations d'égalité et d'inégalité (= et /= ). Ce sont les<br />

propriétés communes de tout type dit à « affectation ».<br />

• Une relation d'ordre est définie entre les diverses valeurs possibles.<br />

On dispose donc en plus :<br />

• des 4 opérateurs de relation : , =<br />

• des tests d'appartenance à un intervalle ou à un sous type : in et not in<br />

• Les types scalaires possèdent une borne inférieure et une borne supérieure que l'on peut connaître par les<br />

attributs FIRST et LAST. Exemples : INTEGER'FIRST et INTEGER'LAST ou FLOAT’FIRST et<br />

FLOAT’LAST (dans ce cas ces valeurs dépendent de l’implémentation numérique).<br />

• Des contraintes d'intervalle (avec range) peuvent être appliquées sur les types scalaires.<br />

Différence : les attributs vus avec les types discrets (ci dessous) s’appliquent aussi aux types scalaires sauf<br />

deux : VAL et POS. En effet avec les types discrets chaque valeur possède un rang, avec les types réels, la<br />

notion de rang n'existe pas.<br />

Donc ni VAL ni POS avec les réels (seule différence à retenir).<br />

Les types scalaires donc aussi les types discrets ont (entre autres) les propriétés suivantes :<br />

• toute valeur d'un type scalaire ou discret, sauf la dernière, possède un successeur, SUCC<br />

• toute valeur d'un type scalaire ou discret, sauf la première, possède un prédécesseur, PRED<br />

• toute valeur (VAL) d'un type discret possède un rang (POS). Spécifique aux types discrets (rappel).<br />

Résumé :<br />

Les attributs <strong>Ada</strong> associés aux types scalaires et discrets sont (vus en TD semaines 3 et 4):<br />

WIDTH POS(*) VAL(*) SUCC MAX<br />

PRED IMAGE VALUE BASE MIN<br />

FIRST LAST ADDRESS SIZE<br />

(*) discrets seulement rappel!<br />

D. Feneuille I.U.T 2001 (cours n°2 fichier COURS2.DOC) 30/06/02

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

Saved successfully!

Ooh no, something went wrong!