Un programme en turbo pascal
Fermé
lolita24
Messages postés
8
Date d'inscription
dimanche 18 novembre 2007
Statut
Membre
Dernière intervention
31 mai 2011
-
3 mai 2009 à 19:47
Ki!l Messages postés 94 Date d'inscription vendredi 1 mai 2009 Statut Membre Dernière intervention 4 mars 2011 - 3 mai 2009 à 20:29
Ki!l Messages postés 94 Date d'inscription vendredi 1 mai 2009 Statut Membre Dernière intervention 4 mars 2011 - 3 mai 2009 à 20:29
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
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:
- Un programme en turbo pascal
- Turbo pascal download - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Programme demarrage windows 10 - Guide
- Mettre en veille un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
1 réponse
Ki!l
Messages postés
94
Date d'inscription
vendredi 1 mai 2009
Statut
Membre
Dernière intervention
4 mars 2011
36
3 mai 2009 à 20:29
3 mai 2009 à 20:29
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}
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}