Типизированные константы
Константы-записи
Определение константы-записи имеет следующий вид:
<идентификатор>: <тип> = (<сп.знач.полей>)
Здесь:
- <идентификатор> – идентификатор константы;
- <тип> – тип записи;
- <сп.знач.полей> – список значений полей.
Список значений полей представляет собой список из последовательностей вида: имя поля, двоеточие и константа. Элементы списка отделяются друг от друга двоеточиями, например:
type point = record х, у: Real end; vect = array [0..1] of point; month = (Jan, Feb, Mar, Apr, May, Jun, Jly, Aug, Sep, Oct, Nov, Dec); date = record d: 1..31; m: month; у: 1900..1999 end; const origon:point = (x:0; у: -1); line:vector = ((x:-3.1; у: 1.5), (x: 5.9; у: 3.0)); SomeDay: date = (d: 16; m: Mar; у: 1989);
Поля должны указываться в той последовательности, в какой они перечислены в объявлении типа. Если в записи используется хотя бы одно поле файлового типа, такую запись нельзя объявить типизированной константой. Для записей с вариантными полями указывается только один из возможных вариантов констант. Например:
type forma = record case Boolean of true: (Birthplace: String [40]); false: (Country: String [20]; EntryPort: String [20]; EntryDate: array [1..3] of Word; count: Word) end; const Perconl: forma = (Country: 'Норвегия'; EntryPort: 'Мурманск'; EntryDate: (16, 3, 89); count: 12); Percon2: forma = (Birthplace: 'Москва');
Константы-множества
Значение типизированной константы-множества задается в виде правильного конструктора множества, например:
type days = set of 1..31; digc = set of ' 0 '.. ' 9 '; error = set of 1..24; const WorkDays: days = [1..5, 8.. 12, 15.. 19, 22.. 26, 29, 30]; EvenDigits: digc = ['0', '2', '4', '6', '8']; ErrorFlag: error= [];
Константы-указатели
Единственным значением типизированной константы-указателя может быть только NIL, например:
const pr: Real= NIL;