Добрый день!
Хочу написать программу реализующую решение СЛУ методом Крамера.
Споткнулся на первом же шаге - не получается написать алгоритм реализующий
вычисление элементов 

. Точнее, я написал алгоритм для вычисления элементов при n=10 в таком виде: 
Procedure Perestanovka10; 
Label 2,1; 
var i1,i2,i3,i4,i5,i6,i7,i8,i9,i10:byte; 
t:longint; 
Begin 
t:=0; 
for i1:=1 to N do begin Per[1]:=i1; for i2:=1 to N do begin if i1<>i2 then begin Per[2]:=i2; for i3:=1 to n do begin if (I3<>i1) and (I3<>i2) then 
begin Per[3]:=i3; for i4:=1 to n do begin if (i4<>i3)and(i4<>i2)and(i4<>i1) then begin Per[4]:=i4; for i5:=1 to n do 
begin if (i5<>i1)and(i5<>i2)and(i5<>i3)and(i5<>i4) then begin Per[5]:=I5; for i6:=1 to n do begin if (i6<>i1)and(i6<>i2)and(i6<>i3)and(i6<>i4) and(i6<>i5) then 
begin  Per[6]:=I6;for i7:=1 to n do begin if (i7<>i1)and(i7<>i2)and(i7<>i3)and(i7<>i4) and(i7<>i5)and(i7<>i6) then begin Per[7]:=I7; for i8:=1 to n do 
begin if (i8<>i1)and(i8<>i2)and(i8<>i3)and(i8<>i4) and(i8<>i5)and(i8<>i6)and(i8<>i7) then begin Per[8]:=I8; for i9:=1 to n do begin if (i9<>i1)and(i9<>i2)and(i9<>i3)and(i9<>i4) and(i9<>i5)and(i9<>i6)and(i9<>i7)and(i9<>i8) then 
begin Per[9]:=I9;for i10:=1 to n do begin if (i10<>i1)and(i10<>i2)and(i10<>i3)and(i10<>i4) and(i10<>i5)and(i10<>i6)and(i10<>i7)and(i10<>i8)and(i10<>i9) then begin 
Per[10]:=I10; 
if ProverkaTopologii(n)=true then begin t:=1;goto 2;end; 
end;end;end;end;end;end;end;end;end;end;end;end;end;end;end;end;end;end;end; 
goto 1; 
2:
1: 
end;
Но меня интересует не конкретный, а алгоритм вычисляющий  элементы 

для произвольного n. Такой вообще возможен?