Probleme de boucle for pour un programe de tri

ObiWanKennedy Messages postés 60 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 29 octobre 2010 - 18 janv. 2005 à 22:13
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 - 20 janv. 2005 à 08:35
public class europe
{
public static void main(String[] arg)
{
char a;
int i,j;
Cpays b;

Cpays [] pays = new Cpays [25];

pays [0] = new Cpays(61400000,543965,"France",new Cville(2152423,"Paris"));

pays [1] = new Cpays(57600000,301250,"Italie",new Cville(2688000,"Rome"));

pays [2] = new Cpays(10200000,30527,"Belgique",new Cville(952000,"Bruxelles"));

pays [3] = new Cpays(40000000,504748,"Espagne",new Cville(5091336,"Madrid"));

pays [4] = new Cpays(10400000,91831,"Portugal",new Cville(2063000,"Lisbonne"));

pays [5] = new Cpays(4000000,70285,"Irelande",new Cville(916000,"Dublin"));

pays [6] = new Cpays(80000000,356970,"Allemagne",new Cville(3400000,"Berlin"));

pays [7] = new Cpays(5200000,337032,"Finlande",new Cville(509000,"Helsinki"));

pays [8] = new Cpays(8800000,449964 ,"Suède",new Cville(1686000,"Stockholm"));

pays [9] = new Cpays(5100000,43069,"Danemark",new Cville(1346000,"Copenhague "));

pays [10] = new Cpays(59400000,244820,"Royaume Uni",new Cville(2504000,"Londres"));

pays [11] = new Cpays(10100000,131957,"Grèce",new Cville(772000,"Athènes"));

pays [12] = new Cpays(15300000,41526,"Pays-Bas",new Cville(724000,"Amsterdam"));

pays [13] = new Cpays(441300,2586,"Luxembourg",new Cville(76000,"Luxembourg"));

pays [14] = new Cpays(7800000,83859,"Autriche",new Cville(1540000,"Vienne"));

pays [15] = new Cpays(38600000,312685,"Pologne",new Cville(1653000,"Varsovie"));

pays [16] = new Cpays(10500000,93032,"Hongrie",new Cville(2009000,"Budapest"));

pays [17] = new Cpays(10300000,78864,"Rép. Tchèque",new Cville(1215000,"Prague"));

pays [18] = new Cpays(5200000,49036 ,"Slovaquie",new Cville(440000,"Bratislava"));

pays [19] = new Cpays(3800000,65200,"Lituanie",new Cville(592000,"Vilnius"));

pays [20] = new Cpays(1600000,45100,"Estonie",new Cville(502000,"Tallinn"));

pays [21] = new Cpays(2500000,65200,"Lettonie",new Cville(910000,"Riga"));

pays [22] = new Cpays(2000000,20251,"Slovénie",new Cville(268000,"Ljubljana"));

pays [23] = new Cpays(740000,9251,"Chypre",new Cville(177000,"Nicosie"));

pays [24] = new Cpays(400800,316,"Malte",new Cville(9000,"La Valette"));

// int Pop, int Sup, String nom, String capital, int nbhab

a='a';
while(a!='Q')
{
System.out.println("Menu!!");
System.out.println("pour trier en fonction des populations des pays taper. P");
System.out.println("pour trier en fonction des superficies des pays taper. S");
System.out.println("pour trier en fonction des noms des pays taper. N");
System.out.println("pour trier en fonction des populations des capitale. taper M");
System.out.println("pour trier en fonction des capitales des pays. taper C");
System.out.println("pour afficher le vecteur apres le tri. taper A");
System.out.println("pour quitter. taper Q");
a=Lire.Car();
if(a=='P') //population du pays
{
for(i=0;i<24;++i)
{
for(j=0;j<24;++i)
{
if(pays[i].mPop0)
{
b=pays [i];
pays [i]=pays [j];
pays [j]=b;

}
}
}
}
else if(a=='M')//population de la capitale
{
for(i=0;i<25;++i)
{
for(j=0;j<25;++i)
{
if(pays[i].capitale.mPop0 )
{
b=pays [i];
pays [i]=pays [j];
pays [j]=b;

}
}
}
}
else if(a=='A') //afficher
{
for(i=0;i<25;++i)
{
System.out.println(pays [i]);
}

}
else if(a!='Q') //erreur
{
System.out.println("Erreur de saisie.");
}
}


}

}

I am a heap of shit to human appearance

4 réponses

ObiWanKennedy Messages postés 60 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 29 octobre 2010 1
18 janv. 2005 à 22:53
j'ai oublié de décrire un plus le problème. Quand, je lance l'execution du programe le menu s'affiche (normal) et des que je choisis le tri que je souhaite cela merde: j'ai fait un tri par bulle
j'ai essayer avec i<24 sa merde et i <25 pareil d'apres le message d'erreur.
bon pour l'affichage, ça merde mais c'est pas pressé ça. mais quand, je rentre dans le for population pays j'ai droit a "Exception In thread "main" java.lang.arrayIndexOutOfBoundsException at europe
.main<europe.java:89>
la ligne 89 c'est if(pays[i].mPop<pays[j].mPop)

sinon le principe du programme c'est de stocké les 25 pays de l'union européenne dans un vecteur avec leur population leur superficie etc.. et de les trier suivant le choix de l'utilisateur
et d'afficher

voila merci

I am a heap of shit to human appearance
0
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
19 janv. 2005 à 09:18
Slut


je pense que ton problème vient de là:

for(i=0;i<24;++i)
{
for(j=0;j<24;++i)

(au lieu de ++j)

D'ailleurs, il serait mieux de faire i++ et j++

Voilà

[Tout le monde a des idées : la preuve, c'est qu'il y en a de mauvaises]
0
ObiWanKennedy Messages postés 60 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 29 octobre 2010 1
19 janv. 2005 à 19:02
a oui grave, lol trop idiot l'erreur de looser quoi mdr.
merci bcp.

I am a heap of shit to human appearance
0
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
20 janv. 2005 à 08:35
C pô grave, j'ai vu pire ;p

[Tout le monde a des idées : la preuve, c'est qu'il y en a de mauvaises]
0