19. Тип "перечисление"

Тип "перечисление" записывается в виде:

(идентификатор i,..,идентификаторN) Идентификаторы, использованные при описании типа, автоматически стано­вятся константами этого типа. Можно использовать в программе переменные и именованные константы типа "перечисление". К ним применимы функции ORD, PRED и SUCC. Переменной можно присвоить значение ее типа; такие перемен­ные могут быть переменными цикла; тип "перечисление" может быть базовым типом множества. Но переменные типа "перечисление" нельзя вводить и выво­дить, они не могут быть преобразованы ни в какой другой тип. Попробуем ис­пользовать тип "перечисление":

TYPE Months = (Jan,Feb,Mar,Apr,Mai,Jun,Jul,Aug,Sep,Oct,Nov,Dec); {идентификаторы Jan...Dec стали КОНСТАНТАМИ типа Months}

VAR M : Months;

CONST MM : Months = Mar; TYPE M_Set = SET OF Months;

CONST Sem1 : M_Set = [Sep..Dec]; Sem2 : M_Set = [Feb..Mai];  Sess : M_Set = [Jan,Jun];

CONST Year : BYTE=0;

BEGIN { определим, что за месяц MM}

IF MM IN Sem1 THEN WRITELN('1-й семестр') ELSE IF MM IN Sem2 THEN WRITELn('2^ семестр') ELSE IF MM IN Sess THEN WRITELN('сессия') ELSE

WRITELN('каникулы'); { посчитаем продолжительность учебного года} FOR M:=Jan TO Dec DO IF M IN Sem1+Sem2+Sess THEN INC(Year); WRITELN('Учебный год длится ',Year,' месяцев');

END.