précédent suivant haut Contents

TYPES ENUMERES NON STANDARDS

Si les types prédéfinis mentionnés précédement ne vous suffisent pas, vous pouvez déclarer (donc créer) d'autres types. Il faut d'abord définir le type que vous désirez créer en donnant la liste ordonnée de toutes les valeurs possibles :

exemple :

TYPE tjour=(lundi,mardi,mercredi,jeudi,vendredi,samedi,dimanche);

Toutes le variables de ce type ne pourront pas avoir d'autres valeurs que celles que l'on a énumérées.

Il faut ensuite déclarer quelles variables seront de ce type :

ex: VAR jour1,jour2:tjour;

On peut alors les utiliser dans le programme grâce à :

* des affectations : JOUR1:=mercredi;

JOUR2:=JOUR1;

* des fonctions prédéfinies: PRED (précédent), SUCC (suivant), ORD (numéro d'ordre (dans la déclaration), entre 0 et N-1)

ex: pred(mardi)=lundi

succ(mardi)=mercredi

ord(mardi)=1

* des comparaisons : lundi<mercredi mais attention dimanche>lundi (suivant l'ordre donné dans la déclaration)

* des boucles : FOR jour1:=lundi TO vendredi DO ...

* des sélections de cas : CASE jour2 OF

lundi : ...;

samedi,dimanche : ...

END

Rq1: les types entiers, booléens, caractères sont des types énumérés prédéfinis. Toutes ces possibilités s'y appliquent donc (succ(10)=11, ord('A')=65,...). Par contre les réels ne sont pas énumérés (on ne peut pas définir de successeur), et ni CASE ni FOR ne peuvent s'y appliquer.

Rq2: READLN et WRITELN ne fonctionnent pas en standard pour les types définis par l'utilisateur, mais plusieurs compilateurs l'acceptent (pas TURBO).


précédent suivant haut Contents