Перечисляемый тип представляет собой ограниченную упорядоченную
последовательность скалярных констант, составляющих данный тип. Зна-
чение каждой константы задается ее именем. Имена отдельных констант
отделяются друг от друга запятыми, а вся совокупность констант, сос-
тавляющих данный перечисляемый тип, заключается в круглые скобки.
Программист объединяет в одну группу в соответствии с каким - либо
признаком всю совокупность значений, составляющих перечисляемый тип.
Например, перечисляемый тип Rainbow(РАДУГА) объединяет скалярные значения
RED, ORANGE, YELLOW, GREEN, LIGHT_BLUE, BLUE, VIOLET (КРАСНЫЙ,
ОРАНЖЕВЫЙ, ЖЕЛТЫЙ, ЗЕЛЕНЫЙ, ГОЛУБОЙ, СИНИЙ, ФИОЛЕТОВЫЙ). Пе-
речисляемый тип Traffic_Light (СВЕТОФОР) объединяет скалярные
значения RED, YELLOW, GREEN (КРАСНЫЙ, ЖЕЛТЫЙ, ЗЕЛЕНЫЙ).
Перечисляемый тип описывается в разделе описания типов, который
начинается со служебного слова type, например:
type
Rainbow = (RED, ORANGE, YELLOW, GREEN, LIGHT_BLUE, BLUE, VIOLET);
Каждое значение является константой своего типа и может принадле-
жать только одному из перечисляемых типов, заданных в программе. Нап-
ример, перечисляемый тип Traffic_Light не может быть определен в одной
программе с типом Rainbow, так как оба типа содержат одинаковые конс-
танты.
Описание переменных, принадлежащих к скалярным типам, которые объ-
явлены в разделе описания типов, производится с помощью имен типов.
Например:
type Traffic_Light= (RED, YELLOW, GREEN);
var Section: Traffic_Light;
Это означает, что переменная Section может принимать значения RED,
YELLOW или GREEN.
Переменные перечисляемого типа могут быть описаны в разделе описа-
ния переменных, например:
var Section: (RED, YELLOW, GREEN);
При этом имена типов отсутствуют, а переменные определяются сово-
купностью значений, составляющих данный перечисляемый тип.
К переменным перечисляемого типа может быть применим оператор
присваивания:
Section:= YELLOW;
Упорядоченная последовательность значений, составляющих перечисля-
емый тип, автоматически нумеруется, начиная с нуля и далее через еди-
ницу. Отсюда следует, что к перечисляемым переменным и константам мо-
гут быть применены операции отношения и стандартные функции Pred,
Succ, Ord.
Переменные и константы перечисляемого типа не могут быть элемента-
ми списка ввода или вывода.