В Паскале существует два способа описания типов данных: явный – с использованием раздела TYPE и неявный, когда тип данного описывается непосредственно в разделе VAR. Примеры тождественного описания данных:
Явное задание пользовательских типов
TYPE_DAY = (SU, МО, TU, WE, ТН, FR, SA);
YEAR= 1900 .. 2000;
NUMERIC = '0'.. '9';
VAR Dl, D2 : DAY; G: YEAR; INTG: NUMERIC;
Неявное задание тех же типов
VAR
Dl, D2 : (SU, МО, TU, WE, ТН, FR, SA);
G: 1900 .. 2000;
INTG: '0' .. '9';
Паскаль не поддерживает операции ввода-вывода значений пользовательских перечисляемых типов.
3.2. Массивы. Регулярные типы
В простых типах данных каждое данное имеет свое название (идентификатор). В этом разделе вводится структурная взаимосвязь между данными, хранимыми в оперативной памяти путем организации массива, состоящего из непрерывно расположенных данных, не снабженных отдельными именами. Эти данные в свою очередь могут быть простыми или сложными и называются элементами массива.
Основное преимущество массива состоит в том, что его элементы не имеют отдельных имен, и нет необходимости описывать каждый элемент по отдельности. Достаточно описать весь массив. Объявление массива содержит следующее описание:
TYPE <имя типа> = ARRAY [тип индекса] OF <тип элементов массива>;
Каждый элемент именуется путем указания имени массива и порядкового номера, определяющего его позицию в массиве, то есть индекса. Если тип данных определен с помощью конструкции ARRAY ... OF то он называется регулярным типом.
Паскаль предоставляет пользователю широкие возможности по заданию типа индекса, которым может быть любой порядковый или интервальный типы данных, в том числе и определенные пользователем. Тип элемента массива иногда называется базовым. Он может быть как любым скалярным, так и структурированным типом данных. Правомерно существование массивов-массивов, записей, множеств. Однако не существует массивов файлов. Число компонентов массива неявно определяется через тип индекса при его объявлении и в дальнейшем не меняется.