В языке Паскаль предусмотрена возможность задавать типы данных, определяемые пользователем (программистом): перечислимый тип и ограниченный тип (или тип-диапазон).
ПЕРЕЧИСЛИМЫЙ ТИП позволяют задавать некоторую произвольную, упорядоченную по усмотрению программиста, последовательность, элементы которой являются значениями переменных. Например, в программе необходимо установить соответствие между числами и названиями дней недели или задать упорядоченную последовательность родственных связей по мужской линии. Для этого удобно объявить перечислимые типы:
могут принимать значения, перечисленные при объявлении типов, и в операторном разделе программы можно записать:
day:=среда; rodstv1:=отец; rodstv2:=прадед;
Между значениями перечислимого типа и порядковыми номерами этих значений устанавливается следующее соответствие: первому значению присваивается номер 0, второму значению – 1 и т.д. Максимальное количество значений перечислимого типа равно 255. Поэтому к переменным перечислимого типа применимы функции определения предшествующего и последующего элемента. Например, при выполнении операторов rodstv1:=pred(сын); rodstv2:=succ(сын); переменные получают значения rodstv1=отец; rodstv2=внук.
Примечание. Выражения Pred(понедельник), Succ(воскресенье), pred(прадед), succ(правнук) не корректны, так как в списке значений перечислимого типа для первых элементов не определены предшественники, а для последних элементов не определены последователи, и применение этих выражений в операторах вызовет при выполнении программы сообщение об ошибке.
ТИП-ДИАПАЗОН задает подмножество своего базового типа, в качестве которого может выступать любой порядковый тип, кроме типа-диапазона. Например:
Type
T1=0..9;
Т2=’0’..’9’;
Т3=’a’..’z’;
Здесь тип Т1 определяет ограниченный диапазон целых чисел – от 0 до 9, разделителем границ диапазона являются две точки. Типы Т2 и Т3 определяют ограниченные наборы символов, поэтому здесь и цифры воспринимаются программой как символы и они также как и буквы должны заключаться в апострофы.