Turbo Pascal.Дано: массивы A ( N1,M1) , B(N2,M2),C (N3,M3). Определить в каждом из заданных массивов сумму наибольших значений элементов его четных строк . Определение суммы наибольшего элемента четных строк массивы осуществить...

Turbo Pascal.Дано: массивы A ( N1,M1) , B(N2,M2),C (N3,M3). Определить в каждом из заданных массивов сумму наибольших значений элементов его четных строк . Определение суммы наибольшего элемента четных строк массивы осуществить в подпрограмме. (желательно записать через функцию) 
Гость
Ответ(ы) на вопрос:
Гость
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
Не нашли ответ?
Ответить на вопрос
Похожие вопросы