Bonjour,
j'essaie de faire un programme de simulation des réseaux ouverts avec Turbo Pascal (TP7); j'ai besoin de faire des procédures et fonctions pour calculer les déterminants d'une matrice.
Voici le code que j'ai réalisé mais le problème est que lorsque j'exécute le programme, il ne trouve pas la valeur du déterminant exacte (il trouve une valeur différente de celle que j'ai calculé manuellement).
Si vous pouvez m'aider pour trouver l'erreur au niveau des procédures.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Merci