Понимаю , код далеко не идеальный , но ведь нужный результат хоть и с ошибкой , но выдаёт!
В функции надо было найти минимальный элемент в строке двумерного массива, и поменять местами элемент главной диагонали в этой же строке с этим минимальным элементом.
<code lang="delphi">
program four;
const n = 3;
type
matrix = array [1..n,1..n] of integer;
var a:matrix; {b:secondMatrix;}
mainJ, mainI,i, j,buf, min: integer;
{++++++++++++++++ <Функция> +++++++++++++++++++++}
function anotherSort(var a: matrix):integer;
var i1, j1,mi,mj: integer;
begin
min := a[1,1];
for i1 := mainI to mainI do
begin
for j1 := 1 to n do
begin
if (min > a[i1,j1]) then
begin
min:=a[i1,j1];
mi:=i1;
mj:=j1;
end;
end;
end;
buf := a[mi,mj];
a[mi,mj] := a[mainI,mainJ];
a[mainI,mainJ] := buf;
result := a[i,j];
end;
{++++++++++++++++ </Функция> +++++++++++++++++++++}
{НАЧАЛО ОСНОВНОЙ ПРОГРАММЫ}
begin
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=(random(8)-9);
write(a[i,j]:5);
end;
writeln;
end;
for i := 1 to n do
for j := 1 to n do
begin
if ( i = j ) and (a[i,j] < 0) then
begin
mainI := i;
mainJ := j;
anotherSort(a);
end;
end;
writeln;
for i := 1 to n do
begin
for j := 1 to n do
begin
write(a[i,j]:5);
end;
writeln;
end;
end.
{КОНЕЦ ОСНОВНОЙ ПРОГРАММЫ}
</code>