Ils représentent des objets dont les valeurs possibles sont énumérables, en y ajoutant la contrainte d'un nombre fini de valeurs.
Ils représentent des valeurs numériques signées ne comportant pas de partie fractionnaire. Le nombre de valeurs représentables sur un ordinateur étant fini, les entiers sont généralement limités à un intervalle de valeurs possibles : de -MaxInt-1 à MaxInt, MaxInt étant donc le plus grand nombre entier représentable. Pour beaucoup d'implantations sur micro-ordinateurs, MaxInt vaudra 32767. Pour les implantations sur plus grosses machines, on aura une valeur beaucoup plus grande, typiquement 232.
Les opérations possibles sur des entiers sont : l'addition, la soustraction, la multiplication, la division, le modulo et la comparaison ( =, >, >=, <, <=, <> ).
En MODULA-2, il existe un type prédéfini d'entiers non signés (CARDINAL).
Les objets de type booléen ne peuvent prendre que deux valeurs possibles : true et false. Les expressions comportant des valeurs booléens sont appelées des expressions logiques. Les opérations possibles sont : and, or, not (opérateur monadique) et la comparaison ( =, <> ).
Il est à noter que les opérateurs de comparaison donnent un résultat booléen, même si les opérandes sont d'un autre type.
Exemple
1 < 3 résultat vrai ou
faux
'a' < 'c' "
1.5 > 3.6 "
true = false "
Sur certaines implantations, une variable logique non initialisée peut avoir une valeur illégale.
Le jeu de caractères d'une machine est sensé être l'énumération, dans un certain ordre, des lettres et signes affichables sur un écran ou imprimables sur papier. Il existe une norme (ASCII) pour un jeu de 128 caractères comprenant non seulement des caractères imprimables mais aussi des caractères de "contrôle". Cette norme ne comporte pas de lettres accentuées.
Sur la plupart des machines, on utilise un octet pour représenter un caractère; il est donc possible d'en énumérer 256 différents. Si les 128 premiers caractères sont presque toujours ceux de la norme ASCII, chaque constructeur a ses propres conventions pour les 128 caractères restants.
Les opérations possibles sont principalement les comparaisons : =, <>, >, <, <=, >= et la fonction de conversion entier ->caractère : chr().
Il est possible de déclarer une suite ordonnée de symboles qui ont un sens particulier pour l'utilisateur. Par exemple, on peut déclarer un
type semaine = (Dimanche, Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi).
Toute variable du type Semaine pourra prendre une de ces sept valeurs (et aucune autre valeur ne sera légale). Il est à noter que la plupart des implantations du PASCAL ne permettent pas d'imprimer, lors de l'exécution, la valeur (le symbole) d'une variable de ce type.
Comme pour les caractères, les opérations possibles sont les comparaisons ( =, <>, <, >, <=, >= ).
Les intervalles ne forment pas, à proprement parler, un type de base. Il s'agit plutôt de types générés en restreignant l'ensemble des valeurs possibles d'un des types de base vus précédemment.
Exemple
type JourOuvrable = Lundi .. Vendredi; Minuscule = 'a' .. 'z'; Naturel = 0 .. MaxInt;
Toutes les opérations applicables au type de base sont applicables au type intervalle qui en est dérivé. L'intérêt de l'utilisation des intervalles réside dans l'amélioration de la lisibilité des programmes (on voit plus clairement quelles sont les valeurs possibles) et l'augmentation de la sécurité de programmation (des valeurs illégales peuvent être automatiquement détectées à l'exécution).
Site Hosting: Bronco