uses crt;
const
nmax = 20;
var
d: array [1 .. nmax, 1 .. nmax] of real;
m, n, i, j, imx, jmx: byte;
sr: real;
begin
clrscr;
randomize;
repeat
write('Количество строк до ', nmax, ' n=');
readln(n);
until n in [1 .. nmax];
repeat
write('Количество столбцов до ', nmax, ' m=');
readln(m);
until m in [1 .. nmax];
writeln('Исходная матрица:');
for i := 1 to n do
begin
for j := 1 to m do
begin
d[i, j] := 10 * random;
write(d[i, j]:5:2);
end;
writeln;
end;
writeln;
imx := 1;
jmx := 1;
for i := 1 to n do
for j := 1 to m do
if d[i, j] > d[imx, jmx] then
begin
imx := i;
jmx := j;
end;
writeln('Максимальный элемент d[', imx, ',', jmx, ']=', d[imx, jmx]:0:2);
sr := 0;
for j := 1 to m do
sr := sr + d[imx, j];
sr := sr / m;
writeln('Среднее в строке ', imx, '=', sr:0:2);
writeln('Замена максимального на среднее:');
for i := 1 to n do
begin
for j := 1 to m do
begin
if (i = imx) and (j = jmx) then
begin
d[i, j] := sr;
textcolor(12);
end
else
textcolor(15);
write(d[i, j]:5:2);
end;
writeln;
end;
readln
end.