Тема: МАССИВЫ (ДВУМЕРНЫЕ)
Цель работы: освоение приемов объявления, обращения и использования двумерных массивов при решении задач.
Возможны два варианта объявления двумерного массива в программе:
Const
n=10; // количество элементов в строке матрицы
m=8; // количество строк матрицы
Type
tTable= array [1..n, 1..m] of integer; // устаревшая форма объявления, массив n*m
tVector= array [1..m] of integer; // описана строка таблицы, содержащая m элементов
tMatrix= array [1..n] of tVector; // описана таблица состоящая их n строк
Var
a: tTable;
b: tMartrix;
Примечание: Первый вариант не соответствует концепции типов языка Паскаль, т.к. не позволяет получить доступ к отдельной строке таблицы. Возможно обращение либо только к таблице в целом (a, тип – tTable), либо только к отдельному элементу i-ой строки и j-го столбца (a[i, j], тип – integer). Второй вариант позволяет работать как с таблицей в целом (b, тип – tMatrix), так и с компонентами таблицы. i-ая строкой таблицы (b[i], тип – tVector), ячейка таблицы, находящаяся в i-ой строке и j-ом столбце таблицы (b[i][j] тип – integer). Обратите внимание на различие в синтаксисе при обращении к ячейкам таблицы: первый вариант объявления таблицы – a[i, j], второй вариант объявления – b[i][j]. В дальнейшем будет использоваться второй вариант объявления.
|
|
Типовые алгоритмы обработки двумерных массивов
Рассмотрим некоторые типовые алгоритмы обработки двумерных массивов. Положим, что в декларативной части программы описаны следующие переменные: двумерные массивы А и В, переменные целого типа i, j, k, sumMatr, sumVect, nMin.
Const
n=5; // количество элементов в строке матрицы
m=5; // количество строк матрицы
Type
tVector= array [1..n] of integer; // описана строка таблицы
tMatrix= array [1..m] of tVector; // описана таблица состоящая их m строк
Var
A, B: tMartrix;
i, j, // счетчики циклов (номер строки и номер столбца соответственно)
k, // счетчик цикла
nMin: integer; // номер минимального значения
sumVect, sumMatr: integer; // сумма элементов строки и матрицы соответственно
Заполнение двумерного массива случайными числами
for i:=1 to n do begin // для каждой строки
for j:=1 to m do // для каждого столбца
A[i][j]:=random(20)-10; // заполняем элемент (i, j) случайным значением из диапазона
Вывода на экран элементов двумерного массива
for i:=1 to n do begin // для каждой строки
for j:=1 to m do // для каждого столбца
Write(A[i][j], ’, ’); // выводим элемент (i, j) и строку текста «,» после него
WriteLn // вывод следующей строки начнется с новой строки экрана
end;