Types énumérés non standards▲
Si les types prédéfinis mentionnés précédemment 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 les 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.
Exemple :
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).
Exemples :
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
READLN et WRITELN ne fonctionnent pas en standard pour les types définis par l'utilisateur, mais plusieurs compilateurs l'acceptent (mais pas Turbo Pascal).