// PascalABC.NET 3.1, сборка 1219 от 16.04.2016
procedure MatPrint(a:array of array of integer);
begin
foreach var row in a do begin
foreach var e in row do Write(e:4);
Writeln
end
end;
begin
var n:=ReadInteger('n=');
var m:=ReadInteger('m=');
var c:=ReadInteger('Величина критерия отбора:');
var a:array of array of integer;
SetLength(a,n);
var imax:=0;
var jmax:=0;
var s:=0;
for var i:=0 to n-1 do begin
SetLength(a[i],m);
Write('Ввод строки ',i+1,': ');
for var j:=0 to m-1 do begin
Read(a[i,j]);
if a[i,j] if a[i,j]>a[imax,jmax] then begin imax:=i; jmax:=j end
end
end;
Writeln('Задание 1');
a[imax,jmax]:=s; MatPrint(a);
Writeln('Задание 2');
a[1]:=Copy(a[1].Sorted.ToArray); MatPrint(a);
Writeln('Задание 3');
// Тут непонятно. Следующая строка обменяет местами
// максимальный и первый элемент строки
foreach var row in a do Swap(row[0],row[row.IndexMax]);
// Другой вариант. Следующая строка заменит первый
// элемент строки максимальным и оставит максимальный на месте
// Для этого нужно заменить строку на нижеследующую
// foreach var row in a do row[0]Ж,row[row.IndexMax]);
MatPrint(a)
end.
Тестовое решение
n= 3
m= 4
Величина критерия отбора: 15
Ввод строки 1: 18 24 13 7
Ввод строки 2: 6 12 32 10
Ввод строки 3: 25 13 18 6
Задание 1
18 24 13 7
6 12 67 10
25 13 18 6
Задание 2
18 24 13 7
6 10 12 67
25 13 18 6
Задание 3
24 18 13 7
67 10 12 6
25 13 18 6