Program Example;
const
r = 20;
type
tM = array[1..r, 1..r]of integer;
function GetMax(var a: tM; n: integer; m: integer): integer;
// Возвращает значение максимального элемента в строке n массива а
var
j, max: integer;
begin
max := -32767;
for j := 1 to m do
if max < a[n, j] then max := a[n, j];
GetMax := max
end;
function SumMax(var a: tM; n: integer; m: integer; p: integer; q: integer): integer;
// Проверяет условие n<=r, m<=r, при нарушении возвращает значение -32768
// Полагает, что массив [1..n,1..m] размещен внутри массива a[1..r,1..r]
// Заполняет выбранную область массива А случайными числами из диапазона (p;q)
// Возвращает значение суммы максимальных элементов четных строк выбранной области.
var
i, j, s: integer;
begin
if (n > r) or (m > r) then SumMax := -32767
else begin
Randomize;
for i := 1 to n do
for j := 1 to m do
a[i, j] := random(p + q) - p;
s := 0; i := 2;
while i <= n do
begin
s := s + GetMax(a, i, m);
i := i + 2
end;
SumMax := s
end
end;
const
n1 = 5; m1 = 3;
n2 = 4; m2 = 4;
n3 = 3; m3 = 7;
var
i, j, sum: integer;
A: tM;
begin
sum := SumMax(A, n1, m1, -30, 60);
writeln('Массив A[1..', m1, ',1..', n1, ']');
for i := 1 to n1 do
begin
for j := 1 to m1 do write(A[i, j]:4);
writeln;
end;
writeln('Сумма максимумов четных строк массива A равна ', sum);
sum := SumMax(A, n2, m2, 0, 90);
writeln('Массив B[1..', m2, ',1..', n2, ']');
for i := 1 to n2 do
begin
for j := 1 to m2 do write(A[i, j]:4);
writeln;
end;
writeln('Сумма максимумов четных строк массива B равна ', sum);
sum := SumMax(A, n3, m3, 20, 50);
writeln('Массив C[1..', m3, ',1..', n3, ']');
for i := 1 to n3 do
begin
for j := 1 to m3 do write(A[i, j]:4);
writeln;
end;
writeln('Сумма максимумов четных строк массива C равна ', sum);
end.
Контрольный пример:
--------------------------------
Массив A[1..3,1..5]
47 55 48
51 45 49
32 47 53
54 31 33
56 50 36
Сумма максимумов четных строк массива A равна 105
Массив B[1..4,1..4]
85 49 72 13
66 57 22 54
67 63 76 53
79 2 38 88
Сумма максимумов четных строк массива B равна 154
Массив C[1..7,1..3]
46 18 36 -10 31 24 -3
22 32 29 39 21 41 -19
9 48 47 -1 4 29 11
Сумма максимумов четных строк массива C равна 41
алг
нач
<em>цел </em>k, l
k := int(rand(5, 80));
<u>вывод </u>"Угадайте число", нс | k
<u>ввод </u>l
<u><em>если </em></u>k = l <u><em>то</em></u>
<u>вывод </u>"Вы совершенно правы, сударь"
<u><em>иначе</em></u>
<u>вывод </u>":Р"
<u><em>все</em></u>
<span>кон</span>
Program arr;
var
a: array[1..10] of integer;
i: integer;
begin
randomize;
for i := 1 to 10 do
a[i] := Random(10);
for i := 1 to 10 step 2 do
a[i] := a[i] * 3;
for i := 2 to 10 step 2 do
a[i] := 0;
end.