Un programme en turbo pascal

lolita24 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
Ki!l Messages postés 94 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Slt je ss une étudiante en 1ére an et je sais pas comment faire pour resoudre ce programme en pascal,en utilisant une matrice de 100 cases donc il existe 10 villes ,les types enregistrements ,procedure et fonction et pourquoi pas les pilles, voici le:
Soit un graphe representant les differentes villes d'un pays .Ecrire un programme qui gère les differents voyages en repondant aux questions du genre:
-l'éxistance d'un chemin entre deux villes.
-la distance à parcourir ente deux villes en precisant les differentes distances.
-le chemin le plus court entre deux villes.
et ce programme doit fonctionne pour n'importe quel graphe donné donc il est général
(l'existance d'un chemin doit se representer par( soit true =il existe un chemin,soit false=il n'existe pas un chemin) la diagonale doit etre rempli par false.
Merci
A voir également:

1 réponse

Ki!l Messages postés 94 Date d'inscription   Statut Membre Dernière intervention   36
 
voici un prog que je l'ai pas encore testé
program voyageur;
uses Wincrt;
type mat = array[1..20,1..20] of integer;
vect1 = array[1..20] of string;
vect2 = array[1..20] of boolean;

var dist : mat;
ville : vect1;
vv : vect2;
vd : string;
i,j,n,dp,vc,vi,vs,dmin : integer;


begin
{Entrer le nombre de villes à visiter }
write('Entrer le nombre de villes à visiter: ');
readln(n);
writeln;

{Entrer les noms des villes et Initialiser le vecteur des villes visitées à False}
writeln('Entrer les noms des villes à visiter');writeln;
for i:= 1 to n do
begin
readln(ville[i]);
vv[i]:=false;
end;

writeln;
{Entrer le nom de la ville de départ}
write('Entrer le nom de la ville de départ: ');
readln(vd);

writeln;
{Entrer les distances entre les villes }
writeln('Entrer les distances entres les villes');
writeln;
for i:= 1 to n do
for j:=1 to i do
if i=j then dist[i,j]:=0
else
begin
write('Entre ',ville[i],' et ',ville[j], ': ');
readln(dist[i,j]);
dist[j,i]:=dist[i,j];
end;

{Marquer le ville de départ comme ville visitée}
vc:=1;
while ville[vc]<>vd do vc:=vc+1;
vv[vc]:=true;
vi:=vc;

{Initialiser la distance parcourue à zéro}
dp:=0;


clrscr;
writeln('Ville de départ : ',vd);
writeln;writeln;
writeln('L''iténéraire suivi par le voyageur est le suivant : ');
writeln;


write(' ',vd,' ');
{Recherche de la ville suivante "vs" la plus proche et calcul de la distance parcourue}
for i:=1 to n-1 do
begin
dmin:=10000;
for j:=1 to n do
if (dist[vc,j]<dmin) and (vv[j]=false) then
begin
dmin := dist[vc,j];
vs:=j;
end;
dp:=dp+dist[vc,vs];
write(ville[vs],' ');
vv[vs]:=true;
vc:=vs;
end;
dp:=dp+dist[vi,vs];
write(vd);
writeln;writeln;
write('La distance totale parcourue est de : ',dp,' Km.');
end.
{k_il90@hotmail.com}
1