Описание константы типа массив содержит значения элементов,
заключенные в скобки и разделенные запятыми.
┌───┐ ┌──────────────┐ ┌───┐
константа-массив ───>│ ( ├────>│типизированная├──┬─>│ ) ├──>
└───┘ ^ │ константа │ │ └───┘
│ └──────────────┘ │
│ ┌───┐ │
└──────┤ , │<────────┘
└───┘
Приведем пример константы типа массив:
type
Status = (Active,Passive,Waiting);
StatusMap = array[Status] of string[7];
const
StatStr: StatusMap = ('Active','Passive','Waiting');
В этом примере определяется константа-массив StarStr, кото-
рая может использоваться для преобразования значений типа Status
в соответствующие им строковые представления. Элементами массива
StarStr являются:
StatStr[Active] = 'Active'
StatStr[Passive] = 'Passive'
StatStr[Waiting] = 'Waiting'
Тип элемента константы-массива может быть любым, кроме фай-
лового типа. Упакованные константы строкового типа (символьные
массивы) могут быть определены и как одиночные символы, и как
строки. Определение:
const
Digits:array[0..9] of
char=('0','1','2','3','4','5','6','7','8','9');
можно представить в более удобном виде:
const
Digits: array[0..9] of char = '0123456789';
При разрешении расширенного синтаксиса (с помощью директивы
компилятора {$X+}) массивы с нулевой базой могут инициализирова-
ться строкой, которая короче, чем описанная длина массива, напри-
мер:
const
FileName = array[0..79] of Char = 'TEXT.PAS';
B.Pascal 7 & Objects/LR - 87 -
В таких случаях оставшиеся символы устанавливаются в NULL
(#0), и массив содержит строку с завершающим нулем.
Примечание: Подробнее о строках с завершающим нулем
рассказывается в Главе 18.
При описании константы типа "многомерный массив" константы
каждой размерности заключаются в отдельные скобки и разделяются
запятыми. Расположенные в середине константы соответствуют самым
правым размерностям. Описание:
type
Cube = array[0..1,0..1,0..1] of integer;
const
Maze: Cube = (((0,1),(2,3)),((4,5),(6,7)));
задает следующие начальные значения массива Maze:
Maze[0, 0, 0] = 0
Maze[0, 0, 1] = 1
Maze[0, 1, 0] = 2
Maze[0, 1, 1] = 3
Maze[1, 0, 0] = 4
Maze[1, 0, 1] = 5
Maze[1, 1, 0] = 6
Maze[1, 1, 1] = 7