2.0 4.0 8.0 16.0 32.0 64.0
Массив B
9.0 16.0 25.0 36.0 49.0
Массив C
11.0 18.0 27.0 38.0 51.0
13.0 20.0 29.0 40.0 53.0
17.0 24.0 33.0 44.0 57.0
25.0 32.0 41.0 52.0 65.0
41.0 48.0 57.0 68.0 81.0
73.0 80.0 89.0 100.0 113.0
Пример 2. Создать двумерный массив , где ; по правилу . Найти сумму наибольших элементов строк матрицы с четными номерами. Вывести на печать саму матрицу, номера строк, в которых производился поиск наибольших элементов, сами наибольшие элементы и окончательный ответ.
Решение.
1. Анализ задачи.
Обозначим: Max – наибольший элемент в строке с четным номером, N_Max – номер столбца, в котором найден наибольший элемент, sum – сумма наибольших элементов строк матрицы с четными номерами. Для проверки чётности будем использовать функцию Odd(k), которая возвращает True, если k – нечётное число и False, если k – чётное число.
2. Тест для отладки программы.
;
; ;
; ;
; ;
; .
Наибольший элемент будет .
3. Блок-схема:
4. Программа:
program Matr;
TYPE
Matrix=array [2..7,1..9] of real;
VAR
a: Matrix;
sum, Max: Real;
|
|
N_Max: Integer;
i,j: Integer;
BEGIN
for i:=2 to 7 do
for j:=1 to 9 do
a[i,j]:= sin(i+j) + cos(i-j); {Вычисление элементов массива}
{ Печатаем массив в виде таблицы }
WriteLn('Массив A');
for i:=2 to 7 do
Begin
for j:=1 to 9 do
write(a[i,j]:6:3,' ');
writeln; {перевод курсора на следующую строку}
end;
sum:=0;{ Обнуляем переменную для подсчета суммы }
for i:=2 to 7 do begin
if odd(i)=false then begin
{ Присваиваем максимуму значение первого элемента в столбце }
Max:= a[i,1];
{ Ищем максимальный элемент и его номер, начиная со следующей строки }
for j:=2 to 9 do
if Max < a[i,j] then begin
Max:= a[i,j];
N_Max:= j; end;
sum:= sum + Max;