Массивы

Массив представляет индексированный набор элементов одного типа (называемый базовым типом). Поскольку каждый элемент имеет уникальный индекс, массивы, в отличие от наборов, могут содержать в себе одно и то же значение более одного раза.

Объявление массива

Типы массивов обозначаются конструкциями следующего вида:

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].