Calcul de la distance entre deux villes

Contenu du snippet

Tout est dit dans le titre...

Source / Exemple :


public class distances_villes
{public static void main(String args[])
 {int i, choix, nbv=0, fin=0, dist[][]=new int[10][10]; String nom, ville[]=new String[10]; boolean ok;

	do {

		System.out.println("Menu:");
		System.out.println("1|Enregistrer une ville.");
		System.out.println("2|Donner une distance entre deux villes.");
		System.out.println("3|Donner les villes situees a moins de x kilometres d'une ville donnee.");
		System.out.println("X|Quitter.");
		choix=Lire.i();

		switch(choix) {

		case 1:	if(nbv==10)
				System.out.println("Vous ne pouvez plus enregistrez de ville.");

			else {
				System.out.println("Nom de la ville:");
				nom=Lire.S();

				ok=Recherche(ville,nom,nbv);
				if(ok==false)
					System.out.println("Ville deja saisie.");
				else {
					ville[nbv]=nom;

					for(i=0;i<nbv;i++) {
						System.out.println("Donnez la distance avec "+ville[i]+":");
						dist[nbv][i]=Lire.i();
						dist[i][nbv]=dist[nbv][i];
					                   }

					nbv++;
				     }
			     }
			break;

		case 2:	if(nbv==0)
				System.out.println("Il n'y a pas de ville enregistree.");
			else if(nbv==1)
				System.out.println("Il n'y a qu'une ville d'enregistree.");
			else {
				System.out.println("Voici les villes:");
				for(i=0;i<nbv;i++)
					System.out.println(i+": "+ville[i]);
			
				Distance(dist,ville);
			     }
				break;

		case 3:	if(nbv==0)
				System.out.println("Il n'y a pas de ville enregistree.");
			else if(nbv==1)
				System.out.println("Il n'y a qu'une ville d'enregistree.");
			else {
				System.out.println("Voici les villes:");
				for(i=0;i<nbv;i++)
					System.out.println(i+": "+ville[i]);
			
				Distance_min(dist,ville,nbv);
			     }
			break;

		default:	fin=1;
				break;

		             }

	   }
	while(fin==0);

 }

public static void Distance(int Tab1[][], String Tab2[]) {
	int v1, v2, i;
	System.out.println("Donnez le numero de la premiere ville:");
	v1=Lire.i();
	System.out.println("Donnez le numero de la seconde ville:");
	do {
		v2=Lire.i();
		if(v2==v1)
		System.out.println("Vous ne pouvez pas comparer deux fois la meme ville ; recommencez:");	
	   }
	while(v2==v1);
	System.out.println("La distance entre "+Tab2[v1]+" et "+Tab2[v2]+" est : "+Tab1[v1][v2]);
                                                           }

public static void Distance_min(int Tab1[][], String Tab2[], int nb) {
	int v, d, i, cpt=0;
	System.out.println("Donnez le numero de la ville:");
	v=Lire.i();
	System.out.println("Donnez la distance minimale:");
	d=Lire.i();
	System.out.println("Les villes situees a moins de "+d+" km de "+Tab2[v]+" sont:");
	for(i=0;i<v;i++)
		if(Tab1[i][v]<d) {
			System.out.println(Tab2[i]+" --> "+Tab1[i][v]+" km");
			cpt++;
		                 }
	for(i=v+1;i<nb;i++)
		if(Tab1[i][v]<=d) {
			System.out.println(Tab2[i]+" --> "+Tab1[i][v]+" km");
			cpt++;
		                 }
		if(cpt==0)
			System.out.println("Il n'y a pas de ville situee a moins de "+d+" km de "+Tab2[v]+".");
                                                                     }

public static boolean Recherche(String Ville[], String nom, int nbv) {
	int cpt=0, i; boolean ok;
	for(i=0;i<nbv;i++)
		if(nom==Ville[i])
			cpt++;
	if(cpt==0)
		return ok=true;
	else
		return ok=false;
                                                                     }

}

Conclusion :


Ce code est complétement libre, vous pouvez le modifier comme bon vous semble.

Si vous arrivez à des trucs bien, envoyez les moi, je les ajouterais ici afin que tout le monde puisse en profiter...

(bon ben le zip marche po alors je mets le code direct voilà...)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.