- 1 - L'environnement de développement
- 2 - Premier programme
- 3 - Les variables
- 4 - Les structures de contrôle
- 5 - Les attributs, les énumerations
- 6 - Les tableaux
- 7 - Les sous-programmes
- 8 - Les types
- 9 - Les packages
- 10 - Le multi-tache
- 11 - Ecrire un programme pour le robot
- 12 - Utilisation de la lib PNG_Interface
- 13 - Exercice : SimpleForth
- 14 - Exercice : Startup_Manager
- 15 - Exercice : Gestion des déplacements
Les attributsLes attributs sont un peu comme les membres static d'une classe en Java. C'est à dire que les attributs sont des fonctions ou des valeurs rattachées à un type. Par exemple, le plus petit Integer est une propriété des Integer. La syntaxe pour les utiliser est la suivante :
plus_petit_entier : Integer := Integer'First; plus_grand_entier : Integer := Integer'Last; Parmi les attributs les plus utiles, on trouve
Exemple de petit programme (il existe de meilleures façons de lire un entier, c'est juste pour l'exemple)
with Text_IO; use Text_IO; procedure attrib is nombre1 : Integer; nombre2 : Integer; begin Put("Entrez un nombre (entre " & Integer'Image(Integer'First) & " et " & Integer'Image(Integer'Last) & ") : "); nombre1 := Integer'Value(Get_Line); Put("Entrez un 2nd nombre : "); nombre2 := Integer'Value(Get_Line); Put_Line("Le plus grand est " & Integer'Image(Integer'Max(nombre2, nombre2))); end attrib; Les énumérationsUne énumération est un ensemble fini d'éléments, défini par la liste de ses éléments (enum en C), par exemple (rouge, vert, bleu) est une énumération. La syntaxe Ada pour déclarer une énumération est la suivante :
type nom_de_mon_enumeration is (liste_des_valeurs); La définition d'une énumération définit implicitement un ordre : le premier est le plus petit, le dernier le plus grand. Une énumération à n éléments est donc très proches de l'ensemble des entiers de 1 à n. Il existe d'ailleurs un certain nombre d'attributs qui s'appliquent aux énumérations et aux entiers (ici i est un entier et x et y des éléments de l'énumération) :
NOTE1: Par défaut, les éléments sont indicés à partir de 0 NOTE2: On peut définir une valeur numérique pour chaque élément :
type abc is (a, b, c); for abc use (a=>12, b=>37, c=>42); NOTE3: Tenter d'accéder au successeur du dernier, au prédécesseur du premier, ou encore à l'élément à partir d'un indice invalide lève bien sûr une exception.
with Text_IO; use Text_IO; procedure enum is type Zsur4Z is (Zero, Un, Deux, Trois); Acc : Zsur4Z := Zero; begin loop Put_Line("Acc vaut " & Zsur4Z'Image(Acc)); Put("Combien voulez vous ajouter ? "); declare number : Integer := Integer'Value(Get_Line); begin exit when number = 0; Acc := Zsur4Z'Val((Zsur4Z'Pos(Acc) + number) mod 4); end; end loop; end enum;
|
|||||||||||||||||||||||||||||||||

facilement)

