Массивы
Массив представляет индексированный набор элементов одного типа (называемый базовым типом). Поскольку каждый элемент имеет уникальный индекс, массивы, в отличие от наборов, могут содержать в себе одно и то же значение более одного раза.
Объявление массива
Типы массивов обозначаются конструкциями следующего вида:
array[index_start .. index_end] of type
Каждый из элементов массива пронумерован от index_start
до index_end
. Спецификатор index_start
может быть опущен вместе с точками, и в этом случае по умолчанию он равен нулю.
Каждый элемент массива имеет тип и может быть доступен путем указания имени массива, за которым следует индекс элемента в скобках.
Вот несколько примеров объявления массива:
var
weekdays : array[1..7] of byte;
samples : array[50] of word;
begin
// Теперь мы можем получить доступ к элементам переменных массива, например:
samples[0] := 1;
if samples[37] = 0 then ...
Массив констант
Массив констант инициализируется путем присвоения ему скобкой с разделителями-запятыми значений в круглых скобках. Например:
// Объявляем массив констант, который содержит количество дней в каждом месяце:
const MONTHS : array[1..12] of byte = (31,28,31,30,31,30,31,31,30,31,30,31);
Количество назначенных значений не должно превышать заданную длину. Обратное возможно, когда конечным «избыточным» элементам присваиваются нули.
Для получения дополнительной информации о массивах с элементами типа char
, см. Строки.
Многомерные массивы
Многомерные массивы строятся путем объявления массивов типа массива. Эти массивы хранятся в памяти таким образом, что самый правый индекс индексов изменяется быстрее, т. е. массивы хранятся «в строках». Вот пример 2-мерного массива:
var m : array[5] of array[10] of byte; // двумерный массив размером 5x10
Переменная m представляет собой массив из 5 элементов, которые, в свою очередь, являются массивами по 10 байт каждый. Таким образом, мы имеем матрицу из 5x10 элементов, где первый элемент равен m [0] [0], а последний - m [4] [9]. Первым элементом четвертой строки будет m [3] [0].