Двумерные и многомерные массивы
Представьте себе таблицу, состоящую из нескольких строк. Каждая строка состоит из нескольких ячеек. Тогда для точного определения положения ячейки нам потребуется знать не одно число (как в случае таблицы линейной), а два: номер строки и номер столбца. Структура данных в языке Паскаль для хранения такой таблицы называется двумерным массивом.
Описание двумерного массива:
Var
A : Array [1..20,1..30] Of Integer;
Описан двумерный массив, соответствующий таблице, состоящей из 20 строк и 30 столбцов.
Отдельный элемент двумерного массива адресуется, естественно, двумя индексами. Например, ячейка, находящаяся в 5-й строке и 6-м столбце будет называться A[5,6].
Ввод двумерного массива:
а) С клавиатуры
For i:=1 to 20 do
For j:=1 to 30 do
Read (a[I,j]);
б) Автоматическое формирование массива
For i:=1 to 20 do
For j:=1 to 30 do
a[I,j] := random (50)-25;
Вывод двумерного массива в виде матрицы:
For i:=1 to 20 do begin
For j:=1 to 30 do
Write(A[i,j] :5)
Writeln;
End;
Для иллюстрации способов работы с двумерными массивами решим задачу: «Задать и распечатать массив 10х10, состоящий из целых случайных чисел в интервале [1,100]. Найти сумму элементов, лежащих выше главной диагонали».
При отсчете, начиная с левого верхнего угла таблицы, главной будем считать диагональ из левого верхнего угла таблицы в правый нижний. При этом получается, что элементы, лежащие на главной диагонали будут иметь одинаковые индексы (i=j), а для элементов выше главной диагонали номер столбца будет всегда превышать номер строки (j>i).
Program M2;
Uses Crt;
Var
A : Array[1..10,1..10] Of Integer;
i, j : Byte;
S : Integer;
Begin
Clrscr;
Randomize;
{формирование матрицы}
For i:=1 to 10 do Begin
For j:=1 to 10 do Begin
A[i,j]:=Random(100)+1;
{вывод матрицы}
For i:=1 to 10 do Begin
For j:=1 to 10 do
Write(A[i,j]:5);
Writeln:
End;
{подсчет суммы элементов выше главной диагонали}
S:=0;
For i:=1 to 10 do
For j:=1 to 10 do
If j>i Then S:=S+A[i,j]
Writeln('Сумма элементов выше главной диагонали равна ',S)
End.
Если модель данных в какой-либо задаче не может свестись к линейной или плоской таблице, то могут использоваться массивы произвольной размерности. N-мерный массив характеризуется N индексами.
Дата добавления: 2015-08-08; просмотров: 983;