Перечисляемый тип задается перечислением тех значений, которые он может получать. Определяется как упорядоченный набор идентификаторов, заданных путем их перечисления. Например:
Type Colors = (red, green, blue);
Var Col: Colors;
Переменная Col может принять одно из трех значений: red, green, blue.
Таким образом, каждое значение именуется некоторым идентификатором и располагается в списке, ограниченном круглыми скобками. Идентификаторы перечисляются через запятую.
Значения перечисляемого типа упорядочены: первое имеет порядковый номер 0, второе – 1 и т.д. Можно использовать следующие стандартные функции:
Ord (x) – возвращает порядковый номер элемента x;
Succ (x) – возвращает значение, следующее за х;
Pred (x) – возвращает значение, предшествующее х.
В приведенном выше примере:
a:= ord (red); { Значение переменной a = 0 }
col:= succ (green); { col = blue }
col:= pred (col); { col = green }
Значения перечисляемого типа можно сравнивать: сравниваются их порядковые номера.
К данным этого типа нельзя применять стандартные команды ввода (Readln) и вывода (Write).
Назначение перечисляемого типа – сделать текст программы более наглядным (читабельным).
Тема 7. Тип-диапазон
Краткое изложение теоретического материала.
Тип-диапазон называют также ограниченным и интервальным типом.
Тип-диапазон есть подмножество своего базового типа, в качестве которого может выступать любой порядковый тип, кроме самого типа-диапазона (т.е. типы Integer, Boolean, Char, перечисляемый тип).
Диапазон задается границами своих значений внутри базового типа:
<минимальное значение> .. <максимальное значение>
Причем минимальное значение должно быть меньше либо равно максимальному.
Например:
Type Digit = ’0’..’9’; { тип-диапазон, ограничение наложено на Char }
Year = 1900..2009; { тип-диапазон, ограничение на Integer }
Week = (mon, tues, wed, thur, fri, sat, sun); { перечисляемый тип (дни недели)}
Var d: Digit;
y: Year;
m: 1..12; { переменная m относится к ограниченному типу}
work: mon.. fri; { тип-диапазон, ограничение наложено на Week }
Тип-диапазон наследует все свойства своего базового типа.
Назначение типа-диапазона:
- наглядность программы;
- дополнительная проверка корректности данных.
Тема 8. Множество (множественный тип)