premièrement il faut faire la différence entre la notion "scalaire", car tous les types de base (integer et ses autres dérivation, real et ses autres dérivation, char (caractères) et string (chaines de caractères)), les deux types integer et char sont dit scalaire discret en effet chaque élément de ses deux types a un précédent et un successeur bien déterminer contrairement au élément de type real ou string où on ne peut pas fixer un successeur ou un prédesseur bien déterminer.
en plus de ses types, Pascal autorise les types énumérés. où on a des valeurs bien fixe Par exemple
type Couleur = (Bleu, Blanc, Rouge);
Sens = (Gauche, Haut, Droite, Bas);
grand=3000..4000;
var c,d: Couleur;
s: Sens;
x:grand;
begin
c := Bleu;
s := Droite;
x:=3500;
...
end;
on peut utiliser une variable de type énuméré comme conteur ou selecteur
exemple
type
semaine=(lundi,mardi,mercredi,jeudi, vendredi, samedi, dimanche);
var
jour:semaine;
begin
for jour:= lundi to vendredi do
writeln(jour , ' est un jour ouvrable');
for jour:= samedi to dimanche do
writeln(jour , ' est un jour ferrier');
jour:=mardi;
case jour of
lundi ..vendredi : writeln(jour , ' est un jour ouvrable');
samedi, dimanche : writeln(jour , ' est un jour ferrier');
end;
....
end.
Mais il faut faire attention à deux chose en pascal la plus part des version Turbo Pascal ne permettent pas de lire ni ecrire des valeur dont le type est énuméré faute de quoi ses types sont rarement utilisées.
de plus la declaration d'un type intervalle comme pour le cas du type grand et x si dessus n'est pas fiable, car il admet des valeurs du type dominant integer.
pour le type tableau, c'est un type complexe qu'on peut discuter après avoir eu un accord sur les notions si-dessus.