Часто встречающиеся задачи на двумерный массив

При составлении программ с использованием двумерных массивов некоторые задачи встречаются особенно часто. Ниже приведены фрагменты соответствующих программ.

Пусть для примера дана матрица а(4, 4).

Задача 1. Найти сумму элементов матрицы а.

sum:=0;

for i:=1 to 4 do

for j:=1 to 4 do

sum:= sum + a[i, j];

Задача 2. Найти максимальный элемент матрицы а.

max:=а[1, 1];

for i:=1 to 4 do

for j:=1 to 4 do

if a[i, j] > max then max:=a[i, j];

Примечание. При вычислении минимального элемента матрицы знак неравенства меняется на противоположный и переменную следует назвать min.

Задача 3. Найти максимальный элемент матрицы a с запоминанием его индексов.

max:=а[1, 1]; k:=1; т:=1;

for i:=1 to 4 do

for j:=1 to 4 do

if a[i, j] > max then

begin max : = a[i, j];

k:=i;

m:=j;

end;

Задача 4. Найти количество положительных элементов матрицы a.

k:=0;

for i:=1 to 4 do

for j:=1 to 4 do

if a[i, j] > 0 then k:=k+1;

Задача 5. Сформировать вектор b из положительных элементов, расположенных в четных строках матрицы а. Фактическое число элементов вектора b неизвестно, т. к. оно зависит от значений элементов матрицы а. В описании вектора b необходимо указать максимально возможное число положительных элементов в четных строках матрицы a.

var a:array [1..4, 1..4] of real;

b: array [1..8] of real;

{2 строки с четными номерами по 4 элемента в каждой строке}

. . . . . . . . . . . . . . . . . . . . . ..

k := 0;

for i:=1 to 4 do

i mod 2 = 0 then

for j:=1 to 4 do

if a[i, j] > 0 then

begin к:=k + 1;

b[k]:=a[i, j];

end;

{фактическое число элементов вектора b определяется значением переменной k}

writeln(¢вывод вектора b¢);

for i:=1 to k do write(b[i]:5:2);

 

Задача 6. Сформировать вектор b из сумм элементов столбцов матрицы а. Количество элементов в массиве b равно числу столбцов матрицы а.

var а : array [1..4, 1..4] of real;

b : array [1 .. 4] of real;

. . . . . . . . . . . . . . . . . . . . . ..

for j := 1 to 4 do

begin

b[j]:=0;

for i:=1 to 4 do b[j]:=b[j] + a[i, j];

end;

writeln(¢вывод вектора b¢);

for i:=1 to 4 do write(b[i]:5:2);

 

Задача 7. Найти произведение элементов 2-го столбца матрицы а(4. 4).

p:=1;

for i:=1 to 4 do p:=p*a[i, 2];