(pascal)дан двумерный целочисленный массив 1) найти максимальный элемент массива не превосходящий данного числа n. 2)найти максимальный элемент и его положение в массиве.

Anasstassat Anasstassat    1   18.08.2019 11:20    0

Ответы
лана2661 лана2661  05.10.2020 02:46
// PascalABC.NET 3.2, сборка 1374 от 10.01.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var m:=ReadInteger('Количество строк в массиве:');
  var n:=ReadInteger('Количество столбцов в массиве:');
  Writeln('*** Исходный массив [',m,',',n,'] ***');
  var a:=MatrRandom(m,n,-50,50);
  a.Println(4); Writeln(4*a.ColCount*'-');
  var b:=a.Rows.SelectMany(x->x).ToArray;
  var nn:=ReadInteger('1. Введите число N:');
  Write('Максимальный из элементов, не превосходящий N');
  if nn<b.Min then Writeln(', не существует')
  else Writeln(', равен ',b.Where(x->x<=nn).Max);
  Write('2. Максимальный элемент в массиве [');
  var i:=b.IndexMax;
  Writeln(i div n+1,',',i mod n+1,']=',a[i div n,i mod n])
end.

Пример
Количество строк в массиве: 5
Количество столбцов в массиве: 9
*** Исходный массив [5,9] ***
 -18 -13  16  23 -14 -30 -12  -2  -2
 -34  11 -47 -35  20  44  29 -36  46
   2 -28 -35  -6  38  -9  -2   8 -10
   3  16   5 -20   8   5  48   7 -33
 -25   3  30 -35 -10  22 -11  42 -44

1. Введите число N: 31
Максимальный из элементов, не превосходящий N, равен 30
2. Максимальный элемент в массиве [4,7]=48
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика