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