Аватар
Информатика, опубликовано 2018-08-22 20:16:47 by Гость

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   GetMax := max
end;

function SumMax(var a: tM; n: integer; m: integer; p: integer; q: integer): integer;
// Проверяет условие n// Полагает, что массив [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     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



Вопрос
Не нашли ответа?
Если вы не нашли ответа на свой вопрос, или сомневаетесь в его правильности, то можете воспользоваться формой ниже и уточнить решение. Или воспользуйтесь формой поиска и найдите похожие ответы по предмету Информатика.