Комбинированные типы (записи)
Запись – это объединение элементов разных типов. Как и в массивах, следует различать запись-тип и запись-переменную. Один элемент записи называется полем. Запись-тип. Синтаксис записи-типа:
<имя записи> = Record
<имя поля 1> : <тип>;
...
<имя поля N> : <тип>;
<вариантная часть >
End;
Записи очень удобны для описания и хранения разнотипных данных о каких-либо однотипных структурах.
В целях экономии памяти, повышения скорости чтения и записи данных, следует назначить именно тип Byte, который занимает всего 1 байт памяти, а не тип Word, который требует 2 байта памяти. В то же время, например, для поля ElectYear (год поступления) тип Byte непригоден, т. к. имеет недостаточный диапазон значений. Записи с вариантами. Синтаксис записи допускает вариантность описания полей. Вариантная часть содержит несколько альтернатив, в каждой из которых в круглых скобках задается список полей, присущих своему варианту. При использовании вариантных полей в записях следует подчиняться следующим правилам синтаксиса:
- 1)Вариантная часть должна начинаться со строки, в начале которой располагается слово Case, а в ее конце – слово Of. Между ними располагается поле-признак.
- 2)Запись должна содержать только один вариант, который должен располагаться в конце всех описанных полей непосредствено перед словом End.
- 3)Имена полей во всех вариантах должны быть разными. Они должны также отличаться от имен полей фиксированной части.
- 4)Для некоторых возможных значений поля-признака вариант может отсутствовать. В этом случае после двоеточия, соответствующего значению варианта, следует поставить пустой список ( ) либо не указывать этот вариант вообще (включая значение, двоеточие и пустое поле).
Запись-переменная. Синтаксис записи-переменной:
<имя записи> : Record
<имя поля 1> : <тип>;
<имя поля 2> : <тип>;
...
<имя поля N> : <тип>;
<вариантная часть >
End;
т.е. синтаксисы переменной и типа отличаются одним символом (":" и "=").
Доступ к полям записей. Переменная, представляющая поле, конструируется из имени записи и поля, отделенного друг от друга десятичной точкой. Такая составная переменная называется квалификационной. Доступ к полям записей с помощью оператора With. Для упрощения обращения к полям одной и той же записи можно использовать оператор With.
7.Множественные типы
Множество – это совокупность однотипных элементов. Во многом оно похоже на типизованную константу, однако имеет от него принципиальное отличие. Это отличие состоит в том, что значениями множества являются все его допустимые подмножества. Как и в массивах, следует различать множество-тип и множество-переменную. Множество-тип. Синтаксис множества-типа:
<имя множества> = Set of <базовый тип >;
Пример:
Type
TSomeInts = 1..250;
TIntSet = set of TSomeInts;
создает тип множества с именем TIintSet, которое содержит множество целых чисел в диапазоне от 1 до 250. Это же множество могло быть описано явно:
type TIntSet = set of 1..250;
Множество-переменная. Синтаксис множества-переменной:
<имя множества> : Set of <базовый тип >;
В соответствии с вышеописанными типами можно объявить множества:
Var Set1, Set2: TIntSet;
а затем в операторной части задать эти множества:
...
Set1 := [1, 3, 5, 7, 9];
Set2 := [2, 4, 6, 8, 10];
Можно объявить множество явно, перечислив его элементы:
Var
MySet1 : set of 'a' .. 'z';
MySet2 : set of Byte
MySet3 : set of Char;
...
MySet 1:= ['a','b','c']; [оператор определения множества]