Представьте себе таблицу, состоящую из
нескольких строк. Каждая строка состоит
из нескольких ячеек. Тогда для точного
определения положения ячейки нам
потребуется знать не одно число (как в
случае таблицы линейной), а два: номер
строки и номер столбца. Структура данных
в языке Паскаль для хранения такой
таблицы называется двумерным массивом.
Описать такой массив можно двумя
способами:
I.
Var
A : Array [1..20] Of Array [1..30] Of Integer;
II.
Var
A : Array [1..20,1..30] Of Integer;
В обоих случаях описан двумерный
массив, соответствующий таблице,
состоящей из 20 строк и 30 столбцов.
Приведенные описания совершенно
равноправны.
Отдельный элемент двумерного массива
адресуется, естественно, двумя
индексами. Например, ячейка, находящаяся
в 5-й строке и 6-м столбце будет
называться A[5][6] или A[5,6].
Для иллюстрации способов работы с
двумерными массивами решим задачу: "Задать
и распечатать массив 10X10, состоящий из
целых случайных чисел в интервале [1,100].
Найти сумму элементов, лежащих выше
главной диагонали."
При отсчете, начиная с левого верхнего
угла таблицы, главной будем считать
диагональ из левого верхнего угла
таблицы в правый нижний. При этом
получается, что элементы, лежащие на
главной диагонали будут иметь
одинаковые индексы, а для элементов выше
главной диагонали номер столбца будет
всегда превышать номер строки.
Договоримся также сначала указывать
номер строки, а затем - номер столбца.
Program M5;
Var
A : Array[1..10,1..10] Of Integer;
I, K : Byte;
S : Integer;
Begin
S:=0;
For I:=1 To 10 Do
Begin
For K:=1 To 10 Do
Begin
A[I,K]:=Trunc(Random*100)+1;
Write(A[I,K]:6);
If K>I Then S:=S+A[I,K]
End;
Writeln
End;
Writeln('Сумма элементов выше гл. диагонали
равнаV',S)
End.
Если модель данных в какой-либо задаче
не может свестись к линейной или плоской
таблице, то могут использоваться
массивы произвольной размерности. N-мерный
массив характеризуется N индексами.
Формат описания такого типа данных:
Type
<Имя типа>=Array[<диапазон индекса1>,<диапазон
индекса2>,...
<диапазон индекса N>] Of <тип
компонент>;
Отдельный элемент именуется так:
<Имя
массива>[<Индекс 1>,<Индекс 2>,...,<Индекс
N>]