Введение в Турбо Паскаль

Перечисляемый тип

Перечисляемый тип задается перечислением тех значений, которые он может получать. Каждое значение именуется некоторым идентификатором и располагается в списке, обрамленном круглыми скобками, например:

Type или без предварительного описания этого типа
Colors = (red,white,blue); var col: (black, red, white);
Var a:colors;

Применение перечисляемых типов делает программы нагляднее. Если, например, в программе используются данные, связанные с месяцами года, то такой фрагмент программы был бы очень наглядным. (нельзя использовать кириллицу в идентификаторах) Например,

Type typeMonth=(jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec);
Var
Month:TypeMonth;
Begin
if month=aug then writeln (‘Хорошо бы поехать к морю!’);
End.

Все значения перечисляемого типа имеют свой порядковый номер: первое значение в списке получает порядковый номер 0, второе – 1, и т.д. Максимальная мощность перечисляемого типа составляет 65536 значений.

Использование перечисляемых типов повышает надежность программ благодаря возможности контроля тех значений, которые получают соответствующие переменные. Пусть, например, заданы такие перечисляемые типы:
Type
Colors=(black, Red, White);
Ordenal=(one, two, three);
Days=(Monday, Tuesday, Wednesday);

С точки зрения мощности и внутреннего представления все три типа эквивалентны:

Ord(black)=0,…, ord(white)=2,
Ord(one)=0, …, ord(three)=2,
Ord(Monday)=0, …, ord(Wednesday)=2.

Если определены переменные

Var
Col: colors;
Num: ordenal;
Day: days;

То допустимы операторы col:=red; Num:=succ(two); Day:=pred(Tuesday )

Но недопустимы col:=one; day:=black;
Эквивалентны следующие присваивания: col:= one; col:= colors(0);
Присваивание col:=0 – недопустимо.


Назад