В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
AGIDELKA2004
AGIDELKA2004
22.09.2022 18:09 •  Информатика

Turbo pascal.дано: массивы a ( n1,m1) , b(n2,m2),c (n3,m3). определить в каждом из заданных массивов сумму наибольших значений элементов его четных строк . определение суммы наибольшего элемента четных строк массивы осуществить в подпрограмме. (желательно записать через функцию)

Показать ответ
Ответ:
Vollver
Vollver
07.07.2020 19:06
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
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота