Вариантные записи
В Паскале можно использовать вариантные записи - записи переменной структуры с вариантными (переменными) полями. В списке полей такой записи могут быть фиксированные поля и только одно переменное (вариантное) поле. Вариантная часть записи должна быть в конце описания, т. е. в качестве, последнего ее элемента. В описании записи перечисляются все возможные варианты переменного поля записи. При работе с записью в зависимости от значения селектора записи (ключа) выбирается один из вариантов переменного поля записи. Переменная часть записи может быть представлена в одной из двух форм.
Форма 1 переменной (вариантной) части записи:
TYPE SEL = тип ; ... описание фиксированной части записи CASE SEL OF
Метка-1 : ( список-полей );
Метка-2 : ( список-полей ); ... END ;
Форма 2 переменной (вариантной) части записи:
TYPE SEL = тип ; ... описание фиксированной части записи CASE PR : SEL OF
Метка-1 : ( список-полей ) ;
Метка-2 : ( список-полей ) ; ...
END ;
где SEL - имя типа ключа PR и меток для выбора варианта;
PR - имя переменной - селектора (ключа) выбора варианта; оно должно получить значение до использования вариантной части записи;
элемент списка-полей - это список-идентификаторов-полей : тип.
Ограничения:
в описании записи может быть только одна вариантная часть;
все идентификаторы в списках полей одной записи должны быть различны; однако, на разных уровнях вложенности полей одной записи и в разных записях имена могут повторяться;
вариантная часть записи должна быть последним ее элементом.
Множества
Множество в математике - это произвольный набор объектов любой природы, понимаемый как единое целое. На языке Паскаль множество - это ограниченная совокупность различных элементов базового типа множества. Количество элементов, входящих в множество, может быть в пределах от 0 до 255. Данные переменной типа множества могут быть в виде множества-переменной и множества-константы (конструктора).
Описатель переменной типа множества - SET. Объявление переменной типа множества определяет базовый тип, т. е. состав элементов, из значений которых создаются конкретные значения множественного типа, и мощность множества (максимальное количество его элементов). В качестве базового типа может быть любой ординальный (порядковый) тип данных, кроме типов WORD, INTEGER и LONGINT. В том числе в качестве базового типа может быть тип BYTE, SHORTINT, логический (BOOLEAN), символьный (CHAR), перечисляемый и диапазонный тип (для целых 0 .. 255).
В качестве значения переменной типа множества может быть набор всех элементов базового типа, любое их подмножество, а также пустое множество. Если базовый тип содержит n элементов, то количество различных подмножеств, которые могут быть значением множества данного типа, равно 2n.
Тип переменной-множества может быть определен в разделе TYPE или VAR. Форма определения множественного типа:
TYPE имя-типа-множества = SET OF базовый-тип ;
Примеры объявления данных переменной типа множества:
TYPE MN = SET OF 2..100; { Диапазонный тип }
VRGODA = (VESNA,LETO,OSEN,ZIMA);{Перечисляемый тип }
