Опубликовано 03.01.2018 по предмету Информатика от Гость

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



Не нашел нужный ответ?

Если ответ по предмету Информатика отсутствует или он оказался неправильным, то попробуй воспользоваться поиском других ответов во всей базе сайта.


Найти другие ответы
Самые новые вопросы