Массивы, у которых указан один индексный тип и типом компонент которых не является массив, являются одномерными. Иногда одномерные массивы называют векторами.
Пример: одномерный массив (вектор)
type
TVector = array [ 1..10 ] of real;
Если типом компонент также является массив, то результат можно рассматривать как массив массивов или как один многомерный массив. Другой способ описать многомерный массив – указать через запятую несколько индексных типов.
Пример: многомерные массивы
type
TArray1 = array [ 1..10 ] of real; {одномерный массив}
TArray2 = array [ -3..3 ] of TArray1;
{массив массивов – двухмерный массив}
TArray2b = array [ -3..3 ] of array [ 1..10 ] of real;
{массив массивов – двухмерный массив}
TArray3 = array [ 1..10, boolean, ‘A’..’Z’ ] of integer;
{трехмерный массив}
Частным случаем многомерных массивов является двумерный массив – матрица, таблица. В этом случае обычно первый индекс определяет номер строки, второй – номер столбца.
Массив может быть проиндексирован по каждой размерности всеми значениями соответствующего индексного типа, поэтому число элементов равно произведению числа значений в каждом индексном типе. Число размерностей не ограничено.
TArray2b = array [ -3..3 ] of array [ 1..10 ] of real; {7*10 = 70 элементов }
TArray3 = array [ 1..10, boolean, ‘A’..’Z’ ] of integer;
{10*2*26 = 520 элементов}
Доступ к компонентам многомерного массива также осуществляется с помощью конструкции, называемой переменной с индексом. В случае многомерного массива можно использовать несколько индексов в отдельных квадратных скобках или несколько индексов в одних скобках через запятую.
Пример: обращение к элементам многомерных массивов
type
TMatrix = array [ -3..3 ] of array [ 1..10 ] of real;
var
M: TMatrix;
…
M[1][2] := 3;
M[-2, 9] := 6;
M[i-2, i+6] := M[i][i];
В программе на языке Паскаль один массив может быть присвоен другому, если их типы идентичны.
Пример:
A:=B;
X:=Y;
В случае массивов типы переменных являются идентичными, если:
· тип описан в разделе описания типов;
Пример:
type
Cube = array[0..1,0..1,0..1] of integer;
var
A, B: Cube;
· переменные записаны в разделе var через запятую.
Пример:
var
X, Y: array[0..1,0..1,0..1] of integer;
Пример: типы переменных A и X не идентичны.
Пример: неидентичные типы:
type
MyArray1 = array[1..5] of byte;
MyArray2 = array[1..5] of byte;
Пример: неидентичные типы переменных:
var
K: array[1..5] of byte;
N: array[1..5] of byte;
Вводятся и выводятся массивы покомпонентно. Для ввода или вывода массива в список ввода или вывода помещается переменная с индексом, а операторы ввода или вывода выполняются в цикле.