Описание типов пользователя

Существует несколько возможностей создания (описания) типов пользователя. Описание типов пользователя выполняется в разделе, начинающегося с ключевого слова type.

1. Полное соответствие стандартному типу. В этом случае переменные нового типа обладают такими же свойствами, что и переменные базового типа.

type

<идентификатор — имя типа> = <идентификатор

стандартного базового типа>;

 

Примеры:

type

Mylnteger = Integer;

MyReal = Real;

MyString = String[255];

 

2. Поддиапазон стандартного типа. Такие типы называются ограниченными. Базовым типом в этом случае может быть любой перечислимый тип. Ограниченный тип сохраняет все свойства базового и отличается лишь тем, что имеет ограниченный диапазон значений.
Использование ограниченных типов, определенных пользователем, значительно улучшает наглядность и читаемость программ. Кроме того, специальная опция компилятора позволяет включить контроль выхода переменных за пределы объявленного диапазона, а это удобно при отладке программы. Включение контроля: {$R+}, а выключение его: {$R—}.

type

< идентификатор - имя типа > = < начальное значение

бaзового типа >.. < конечное значение базового типа >;

Примеры:

1)

type

MyInteger = -327.. 327;

СharS = 'A ' .. 'Z ' ;

 

2)

program p3_2 ;

type

MyType = 0 . . 9;

var

varl, var2 : MyType;

begin

{$R-}

varl: =55; { выход за диапазон, но ошибки не возникает }

{$R+}

var2:= 55; { выход за диапазон, ошибка возникнет }

end.

 

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

Примеры:

type

Operator = ( plus, minus, multi, divide );

Day = ( Mon, Tues, Wed, Thur, Fri, Sat, Sun);

Из примеров видно, что переменные типа Operator могут принимать одно из четырех значений plus, minus, multi, divide; переменные типа Day могут одно из 7 значений.

Операции отношения =, <>, >, <, >=, <= можно применять ко всем переменным перечислимых типов, в том числе к описанным пользователем. Для определения результата операций сравнения мы записываем значения в нужном порядке. Для типа Operator в приведенном выше примере справедливы соотношения: plus < minus < multi < divide.