// 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 else Writeln(', равен ',b.Where(x->x<=nn).Max);<br> 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