Константы простых типов
Здесь всё просто. Указывается идентификатор константы, её тип и значение.
Const
a1 : real = 6.565;
symb : char = ’B’;
start : integer = 10;
rest : integer = 20;
Идентификаторы типизированных констант нельзя использовать в описаниях других констант, типов и переменных. Например, если, используя объявленные выше константы start и rest попробовать объявить переменную:
Var
a : array [start .. rest] of char;
то будет зафиксирована ошибка.
Также не допускается в разделе описания констант объявлять типизированные (а также и обычные) константы списком:
Const
symb1, symb2, symb3 : char=’B’;
Константы – строки
Пример
c5 : string = ‘привет’;
rl : string = ‘простые типы’;
Помимо идентификатора, типа и начального содержимого строки, указывается только её максимальная длина.
Если максимальная длина не указана, по умолчанию эта величина принимается равной 255 символов. Вот пара примеров:
Const
readline : string [10] = ‘Глава’;
AB : string [26] = ‘abcdefghijklmopqrstuvwxyz’;
Константы – массивы
В константах-массивах список констант разделяется запятыми и заключается в круглые скобки:
mass : array [0 .. 4] of byte = (1, 2, 3, 7, 8);
vector : array [1 .. 3] of real = (1.5, 0.8, -5.4);
Массив символов может быть описан следующими эквивалентными записями:
mas : array [-1 .. 2] of char = ‘abcd’;
или
mas : array [-1 .. 2] of char = (‘a’, ’b’, ’c’, ’d’);
При объявлении многомерных констант-массивов список констант, соответствующих каждому измерению, заключается в дополнительные круглые скобки и отделяется от соседних списков запятыми. Самый внутренний список констант связывается с изменением самого правого индекса массива.
Например:
Const
matr : array [1 .. 2, 1 .. 4] of byte = ((0, 1, 3, 5),(4, 1, 2, 3));
a : array [0 .. 1, 1 .. 2, 1 .. 3] of byte = (((0, 2, 1),(4, 3, 3)),((6, 7, 8),(12, 11, 13)));
Константы-записи
Определение константы-записи имеет вид:
<идентификатор> : <тип записи> = (<список значений полей>);
Список значений полей представляет собой список из последовательностей вида: имя поля, двоеточие и константа. Поля должны указываться в той же последовательности, в какой они перечислены в объявлении типа.
Например:
Type
Port = record
x, y : real;
end;
const
s : port = (x : 1.5; y : 1.2);
Константы-множества
Описание типизированной константы-множества, помимо идентификатора константы и идентификатора типа, должно содержать перечень начальных значений, разделённых запятыми и заключённых в квадратные скобки. Если группа начальных значений образует неразрывную последовательность, она может быть представлена в виде диапазона. Вот примеры объявлений констант-множеств:
Type
a1 : set of 1..15;
a2 : set of char;
const
b1 : a1 = [1, 2, 3..5, 8, 12..15];
b2 : a2 = [‘a’, ‘d’, ‘f..i’, ‘l’];
b3 : set of ‘0’..’9’ = [‘1’, ‘3’, ‘5’..’8’];
В этом примере в описаниях первых двух констант (b1 и b2) использованы ранее объявленные типы (a1 и a2). В описании третьей константы (b3) использован анонимный тип (set of ‘0’..’9’).
