Voila le programme on pascal qui vous permet de calculer det(*par kamal bakarim *)
program determinant;
uses crt;
var n, i, j: integer;
mat : array[0..20,0..20] of real;
procedure remplire;
begin
writeln('entrez les elements du matrice');
for i := 0 to n-1 do for j := 0 to n-1 do read(mat[i, j]);
end;
procedure subst(p:integer);
var t:integer;
mat0 : array[0..20, 0..20] of real;
begin
t := -1;
for i := p+1 to n-1 do
begin
if mat[i,p] <> 0 then
begin
for j := 0 to n-1 do
begin
mat0[p,j] := mat[i,j];
mat0[i,j] := mat[p,j];
end;
t := i;
i := n + 1;
end;
end;
if t <> -1 then
begin
for i := 0 to n-1 do
begin
for j := 0 to n-1 do if (i <> p)and(i <> t) then mat0[i,j] := mat[i,j];
end;
for i := 0 to n-1 do for j := 0 to n-1 do mat[i,j] := mat0[i,j];
end;
end;
function det(e :integer) : real;
begin
det := 1;
for i := 0 to n-1 do det := det * mat[i,i];
if (e mod 2 = 1) then det := det * (-1);
end;
var t, k, e : integer;
cont : boolean;
begin
writeln(' calcule du determinant ');
writeln('entrez l''ordre du matrice dont le determinant est a calculer: ');
readln(n);
remplire();
t := 0;
k := 1;
e := 0;
cont := true;
while (k < n)and(cont)do
begin
if mat[t,t] = 0 then
begin
subst(t);
inc(e);
end;
if mat[t,t] = 0 then
begin
writeln('le determinant de cette matrice est: 00');
cont := false;
end
else
begin
for j := n-1 downto t do mat[k, j] := mat[k,j] - ((mat[k, t]*mat[t, j])/mat[t, t]);
inc(k);
if (k = n)and(t < n - 1) then
begin
inc(t);
k := t + 1;
end;
end;
end;
if cont then
writeln('le determinant de cette matrice est: ', det(e):5:3);
readln;
readln;
readln;
end.