Bonjour,
Je doit réaliser un algorithme et ensuite un programme qui demande à l'utilisateur de saisir une ville de départ et une ville d'arrivé et le programme doit calculer et afficher le nombre de kilomètre ainsi que le coût du trajet. Voici les données:
Une société de transport veut gérer une ligne d'autocar entre Orléans et Vierzon en passant par La Ferté
Saint-Aubin, Lamotte-Beuvron, Nouans, Salbris. Chaque tronçon du trajet à une certaine distance ( en km )
et un certain tarif ( en € ). La ligne fonctionne dans les deux sens et le tarif est identique dans les deux sens.
tronçon Orléans vers La Ferté Saint - Aubin : 21 km, 5,00€
tronçon La Ferté Saint - Aubin vers Lamotte Beuvron : 14 km, 4,20€
tronçon Lamotte Beuvron vers Nouans : 8 km, 2,30€
tronçon Nouans vers Salbris : 13 km, 1,80€
tronçon Salbris vers Vierzon : 23 km, 3,20€
Le prix d'un trajet est la somme des prix dégressifs selon le nombre de tronçons parcourus, le 1er tronçon
est payé à plein tarif, le 2ème avec 10 % de réduction, le 3ème avec 20 % de réduction, le 4ème avec 30 % de
réduction et le 5ème avec 40 % de réduction.
J'avais d'abord penssée à faire une procédure qui contien toute les villes.
Voici ce que j'ai pensé à faire en java:
public static void ListeVille()
{
String ville;
ville = "orléans";
ville = "La Ferté Saint-Aubin";
ville = "Lamotte Beuvron";
ville = "Nouans";
ville = "Salbris";
ville = "Vierzon";
}
public static void main(String[] args)
{
String villeDepart;
String villeArrivee;
System.out.println("Veuillez saisir une ville de départ parmi les villes proposées : " + ListeVille());
villeDepart = (new Scanner(System.in)).next();
System.out.println("Veuillez saisir une ville d'arrivé parmi les villes proposées : " + ListeVille());
villeArrivee = (new Scanner(System.in)).next();
System.out.println();
}
Dite moi si je suis sur la bonne vois et comment faire pour la suite svp, merci
Bonjour
Tout d'abord, ta methode ListeVille ne fait rien
Il faut plutot stocker les valeurs dans un tableau (String[]) ou une vrai liste (java.util.ArrayList)
Ici tu ne fait que créer une String qui au final contiendra la dernière valeur, c'est à dire Vierzon.
String[] villes = new String{"orléans","La Ferté Saint-Aubin","Lamotte Beuvron"};
Ta méthode devrait au moins retourner la liste et non pas void
--
Il y a de multiples façons de faire.
Ce que je ferais moi, c'est trois tableaux avec
ex: 0 correspond à "orléans";
villes[0]="orléans"
distance[0]=21;
prix[0]=5.0;
Et ton algo, va faire les étapes suivantes:
- recuperer les villes de départ et d'arriver
- chercher dans le tableau ville, l'index de chacune (ex: c'est 0 pour Orléans) nommons les ici i et j
- si i<j
-alors pour k allant de i à (j-1)
distance_totale=distance_totale+distance[k]
prix_total=prix_total+prix[k] (je te laisse chercher pour la décote)
-sinon
-alors pour k allant de j à (i-1)
distance_totale=distance_totale+distance[k]
prix_total=prix_total+prix[k] (je te laisse chercher pour la décote)
voir aussi le cas i=j, donc ville de départ=ville d'arrivée, et si l'utilisateur fait une erreur de frappe en tapant la ville
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :