(pascal)дан двумерный целочисленный массив 1) найти максимальный элемент массива не превосходящий данного числа n. 2)найти максимальный элемент и его положение в массиве.
// 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.
// Внимание! Если программа не работает, обновите версию!
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