1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| procedure det_aux( ma:matrice;var mb:matrice;l,c:integer);
var i,j,d,e:integer;
begin
e:=1;
for i:=1 to l do
begin
d:=1;
if (i<>1) then
begin
for j:=1 to N do
if(j<>c) then
begin
mb[e,d]:=ma[i,j];
d:=d+1;
end;
e:=e+1;
end;
end;
end;
function expo(n:integer):integer;
begin
if (n mod 2=0) then expo:=1
else
expo:=-1 ;
end;
function determinant(m:matrice;l:integer):real;
var i:integer;
var m2:matrice;
var x:real;
begin
x:=0;
if(l=1) then determinant:=m[1,1]
else
begin
for i:=1 to l do
begin
det_aux(m,m2,i,1);
x:=x+(expo(i)*m[i,1]*determinant(m2,(l-1)));
end;
determinant:=x;
end;
end; |
Partager