Если число индексов в описании массива равно N, то массив называется N-мерным. В языке Паскаль не накладывается ограничений на число измерений массива. На практике часто используются двумерные массивы, соответствующие понятию матрицы.
Многомерные массивы представляют собой чистую абстракцию, поскольку память у ЭВМ одномерна и многомерные массивы хранятся в ней в виде линейных последовательностей значений.
Рассмотрим матрицу A, состоящую из 2 строк и 3 столбцов:
Элементы этой матрицы могут быть размещены в памяти ЭВМ «по строкам», формируемая при этом последовательность будет а11, а12, а13, а21, а22, a23. Именно такой способ размещения применяется в языке Паскаль.
В примере дано описание матрицы А, рассмотренной выше.
Туре
stroka = array [1..3] ofinteger;
matr = array [1 ..2] ofstroka;
Var
V: stroka;
A: matr;
В данном случае переменная V объявлена как одномерный массив из трех элементов целого типа. Переменная А имеет смысл двумерного массива из двух строк, в каждую из которых включено по 3 элемента.
Приведенное в примере описание массива А можно сократить, указывая имя массива и диапазоны изменения индексов для каждого измерения массива:
Туре
matr = array [1..2, 1..3] of integer;
Var
A: matr;
Описание массива можно поместить непосредственно в разделе описания переменных:
Var
А : array [1. 2,1..3] of integer;
Ссылка на элемент матрицы А, лежащий на пересечении i-й строки и j-го столбца, может иметь вид: A [i][j] или A[i,j]
Так, для массивов, описанных в примере, можно записать операторы
v[i] := a[i, j]+2; a[i, j] := v[k]+a[k, j];
при условии, что индексные переменные i, j и k лежат в допустимых для массивов диапазонах.