// PascalABC.NET 3.1, сборка 1250 от 28.05.2016 procedure MatPrint(a:array[,] of integer); begin for var i:=0 to Length(a,0)-1 do begin for var j:=0 to Length(a,1)-1 do Print(a[i,j]); Writeln end end;
function MatMax(a:array[,] of integer):integer; begin Result:=-100; // мeньше меньшего в матрице for var i:=0 to Length(a,0)-1 do for var j:=0 to Length(a,1)-1 do if a[i,j]>Result then Result:=a[i,j] end;
procedure MatReplaceNegative(a:array[,] of integer; value:integer); begin for var i:=0 to Length(a,0)-1 do for var j:=0 to Length(a,1)-1 do if a[i,j]<0 then a[i,j]:=value end;
begin var n,m:integer; Write('Задайте число строк и столбцов матрицы: '); Read(n,m); var a:=MatrixRandom(n,m,-99,99); Writeln('Исходная матрица'); MatPrint(a); var mx:=MatMax(a); MatReplaceNegative(a,mx); Writeln('Результирующая матрица'); MatPrint(a) end.
procedure MatPrint(a:array[,] of integer);
begin
for var i:=0 to Length(a,0)-1 do begin
for var j:=0 to Length(a,1)-1 do Print(a[i,j]);
Writeln
end
end;
function MatMax(a:array[,] of integer):integer;
begin
Result:=-100; // мeньше меньшего в матрице
for var i:=0 to Length(a,0)-1 do
for var j:=0 to Length(a,1)-1 do
if a[i,j]>Result then Result:=a[i,j]
end;
procedure MatReplaceNegative(a:array[,] of integer; value:integer);
begin
for var i:=0 to Length(a,0)-1 do
for var j:=0 to Length(a,1)-1 do
if a[i,j]<0 then a[i,j]:=value
end;
begin
var n,m:integer;
Write('Задайте число строк и столбцов матрицы: ');
Read(n,m);
var a:=MatrixRandom(n,m,-99,99);
Writeln('Исходная матрица');
MatPrint(a);
var mx:=MatMax(a);
MatReplaceNegative(a,mx);
Writeln('Результирующая матрица');
MatPrint(a)
end.
Тестовое решение
Задайте число строк и столбцов матрицы: 5 8
Исходная матрица
24 34 -33 63 -39 -33 96 -65
77 -98 0 31 98 20 36 -59
78 23 10 -44 64 -15 36 -48
86 -99 -8 -4 -12 -65 14 86
-37 0 54 74 -85 -81 -5 -21
Результирующая матрица
24 34 98 63 98 98 96 98
77 98 0 31 98 20 36 98
78 23 10 98 64 98 36 98
86 98 98 98 98 98 14 86
98 0 54 74 98 98 98 98