uses crt;
const n=8;
type str=array[1..n] of integer;{1 строка матрицы}
matr=array[1..n] of str;{массив строк=матрица}
function Min(s:str):byte;
var i,imn:byte;
begin
imn:=1;
for i:=1 to n do
if s[i]<s[imn] then imn:=i;
Min:=imn;
end;
var x:matr;
i,j:byte;
b:integer;
begin
clrscr;
randomize;
writeln('Исходная матрица:');
for i:=1 to n do
begin
for j:=1 to n do
begin
x[i,j]:=random(100);
write(x[i,j]:4);
end;
writeln;
end;
writeln;
for i:=1 to n do
begin
b:=x[i,Min(x[i])];
x[i,Min(x[i])]:=x[i,i];
x[i,i]:=b;
end;
writeln('Обмен минимальных в строках с диагональными');
for i:=1 to n do
begin
for j:=1 to n do
write(x[i,j]:4);
writeln;
end;
readln
end.