Кроме стандартных типов, PASCAL поддерживает скалярные типы, определенные самим пользователем. К ним относятся перечисляемый и интервальный типы. Данные этих типов занимают в памяти 1 байт, поэтому любой пользовательский тип не может содержать более 256 элементов. Вводвывод данных пользовательских типов должен организовывать собственными средствами программист.
Перечисляемый тип задается непосредственно перечислением всех значений, которые может принимать переменная данного типа. Отдельные значения указываются через запятую, а весь список заключается в круглые скобки. Для определения перечисляемого типа используется зарезервированное слово TYPE, за которым следует имя типа и список его значений.
Пример. TYPE Animals = (cat, dog, horse, cow);
Birds = (vorona, sinica, golub);
VAR.
Animal: Animals;
Bird: Birds:
.. .. ... .
Animal:= cat;
Bird:= sinica;
.. .. .. .
Интервальный тип позволяет задавать две константы, определяющие границы диапазона значений для данной переменной. Компилятор при каждой операции с переменной интервального типа генерирует подпрограммы проверки, определяющие, остается ли значение переменной внутри установленного для нее диапазона. Обе константы должны быть одного из стандартных типов (напомним, что тип REAL здесь недопустим). Значение первой константы должно быть обязательно меньше значения второй.
Пример. CONST min = 1;
Max = 100;
TYPE.
Temperatura= min. Max;
. VAR T: Temperatura;
.. .. .
T:= 45;
.. .. .