bonjour
je suis une aeronauticienne et j'ai un mini projet de fin d'étude en informatique sa conserne le fameux algorithme "le probleme de voyageur de comerce" ou nommer TSP ils me demande d'ecrire l'algorithme en FORTRAN...l'exercice est dit:trouver le programme en FORTRAN qui calcule le plus court chimin suivit par un avion décolle du point A jusqu'au le point B passer par 10 point dans son trajectoire...et je serais tres contente si vous pouvez m'aider...merci d'avance
voila j'ai un algorithme et je veux le traduire en fortran voulez vous m'aider svp..

program PVC;
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
const n=5;   {nombre de villes}
type matrice=array[1..n,1..n] of integer;
     tablo=array[1..n] of integer;
 
procedure dist(var a : matrice);  {entr‚e des distances}
var i,j,x:integer;
begin
  for i:=1 to n do
  for j:=1 to n do begin    {ici, petit souci : le programme va
  demander a[i,j] et a[j,i] alors que a[i,j]=a[j,i]... comment y rem‚dier ?
  de plus le programme demande aussi a[i,j] pour i=j alors que dans ce cas
  la valeur est 0... peut-on faire une boucle avec j<>i ??}
  write('a[',i,',',j,']= '); readln(x);
  a[i,j]:=x; end;
end;
 
procedure mini(var min, pass :tablo; a:matrice);
var s,i,j,p,k,jmin:integer;
begin
  s:=0;              {s contiendra la longueur du parcours}
  for p:=1 to n-1 do
  begin
      j:=1; while a[i,j]=0 do j:=j+1;
      min[p]:=a[i,j]; jmin:=j;
      for k:=j+1 to n do   {n ou n-1 ?!}
          if (a[i,k]<>0) and (a[i,k]<min[i]) then
          begin
            min[p]:=a[i,k];
            jmin:=k;
          end;
      pass[p]:=jmin;
      a[i,jmin]:=0; a[jmin,i]:=0;
      i:=jmin;
      writeln(pass[p]);    {affichage de la solution}
      s:=s+min[p];         {affichage de la longueur du parcours}
  end;
end;
var a:matrice;
    min,pass:tablo;
begin
  dist(a);
  mini(min,pass,a);
  readln;
end.
merci d'avance...