Problème avec tableau en java

Fermé
mrafter Messages postés 1 Date d'inscription samedi 14 février 2009 Statut Membre Dernière intervention 14 février 2009 - 14 févr. 2009 à 23:16
 Utilisateur anonyme - 15 févr. 2009 à 08:51
Bonjour,
J'ai un devoir à faire et je suis coincé. Dans mon programme je dois demander à l'usager de choisir un pays. Si le pays ne fait pas parti du tableau, je dois lui dire et si le pays fait parti du tableau je dois lui donner la capitale. Je suis coincé au deuxième case 2
voici mon programme:

/**
*
*/
package charettejonathan;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
* @author Cyberaction
*
*/
public class Tp1 {
static final int ABSENT = -1;
static final int CAPITALE = 0;
static final int PAYS = 1;

public static void main(String[] args) throws IOException {
new Tp1().menu();
// TODO Auto-generated method stub
}

private int k;
private int i;



public void menu() throws IOException {
// TODO Auto-generated method stub
String tabPays = "";
String[] tabNoms = { "KABOUL ", "AFGHANISTAN ", "TIRANA ",
"ALBANIE", "ALGER ", "ALGERIE", "BERLIN ",
"ALLEMAGNE", "LUANDA ", "ANGOLA", "RIYAD ",
"ARABIE SAOUDITE", "CANBERRA ", "AUSTRALIE", "VIENNE ",
"AUTRICHE", "DACCA ", "BANGLADESH", "BRUXELLES ",
"BELGIQUE", "BELMOPAN ", "BELIZE", "THIMPHU ", "BHUTAN",
"RANGOON ", "BIRMANIE", "SUCRE ", "BOLIVIE",
"GABORONE ", "BOSTWANA", "BRASILIA ", "BRESIL",
"BEGAWAN ", "BRUNEI", "SOFIA ", "BULGARIE",
"BUJUMBURA ", "BURUNDI", "YAOUNDE ", "CAMEROUN",
"OTTAWA ", "CANADA", "SANTIAGO ", "CHILI",
"PEKIN ", "CHINE", "NICOSIE ", "CHYPRE",
"BOGOTA ", "COLOMBIE", "MORONI ", "COMORES",
"SEOUL ", "COREE DU SUD", "ABIDJAN ",
"COTE D'IVOIRE", "LA HAVANE ", "CUBA", "COPENHAGUE ",
"DANEMARK", "DJIBOUTI ", "DJIBOUTI", "CAIRE ",
"EGYPTE", "QUITO ", "EQUATEUR", "MADRID ",
"ESPAGNE", "WASHINGTON ", "ETATS UNIS", "HELSINKI ",
"FINLANDE", "PARIS ", "FRANCE", "LIBERVILLE ", "GABON",
"BANJUL ", "GAMBIE", "ACCRA ", "GHANA",
"ATHENES ", "GRECE", "CONAKRY ", "GUINEE",
"MALABO ", "GUINEE ÉQUATORIALE", "BISSAU ",
"GUINEE BISSAU", "UAGADOUGOU ", "HAUTE VOLTA", "BUDAPEST ",
"HONGRIE", "MALES ", "ILES MALDIVES", "DELHI ",
"INDE", "DJAKARTA ", "INDONESIE", "BAGDAD ", "IRAK",
"TEHERAN ", "IRAN", "DUBLIN ", "IRLANDE",
"REYKJAVIK ", "ISLANDE", "ROME ", "ITALIE",
"KINGSTON ", "JAMAIQUE", "TOKYO ", "JAPON",
"AMMAN ", "JORDANIE", "NAIROBI ", "KENYA",
"KOWEIT ", "KOWEIT", "VIENTIANE ", "LAOS",
"MASERU ", "LESOTHO", "BEYROUTH ", "LIBAN",
"MONROVIA ", "LIBERIA", "TRIPOLI ", "LIBYE",
"VADUZ ", "LIECHTENSTEIN", "LUXEMBOURG ", "LUXEMBOURG",
"LILONGWE ", "MALAWI", "BAMAKO ", "MALI",
"RABAT ", "MAROC", "NOUAKCHOTT ", "MAURITANIE",
"MEXICO ", "MEXIQUE", "MAPUTO ", "MOZAMBIQUE",
"WINDHOEK ", "NAMIBIE", "YAREN ", "NAURU",
"KATMANDOU ", "NEPAL", "MANAGUA ", "NICARAGUA",
"NIAMEY ", "NIGER", "LAGOS ", "NIGERIA",
"OSLO ", "NORVEGE", "MASCATE ", "OMAN",
"KAMPALA ", "OUGANDA", "ISLAMABAD ", "PAKISTAN",
"PANAMA ", "PANAMA", "ASCUNCION ", "PARAGUAY",
"AMSTERDAM ", "PAYS BAS", "LIMA ", "PEROU",
"QUEZON ", "PHILIPPINES", "VARSOVIE ", "POLOGNE",
"LISBONNE ", "PORTUGAL", "BANGUI ",
"REPUBLIQUE CENTRAFRICAINE", "PRETORIA ",
"REPUBLIQUE D'AFRIQUE DU SUD", "BRAZZAVILLE ",
"REPUBLIQUE DU CONGO", "TANANARIVE ", "REPUBLIQUE MALGACHE",
"PRAGUE ", "REPUBLIQUE TCHEQUE", "BUCAREST ",
"ROUMANIE", "LONDRES ", "ROYAUME UNI", "MOSCOU ",
"RUSSIE", "KIGALI ", "RWANDA", "APIA ", "SAMOA",
"DAKAR ", "SENEGAL", "VICTORIA ", "SEYCHELLES",
"FREETOWN ", "SIERRA LEONE", "MOGADISCIO ", "SOMALIE",
"KHARTOUM ", "SOUDAN", "STOCKHOLM ", "SUEDE",
"BERNE ", "SUISSE", "PARAMARIBO ", "SURINAM",
"MBABANE ", "SWAZILAND", "DAMAS ", "SYRIE",
"TAIPEH ", "TAIWAN", "BANGKOK ", "THAILANDE",
"LOME ", "TOGO", "TUNIS ", "TUNISIE",
"ANKARA ", "TURQUIE", "MONTEVIDEO ", "URUGUAY",
"CARACAS ", "VENEZUELA", "HANOI ", "VIETNAM",
"KINSHASA ", "ZAIRE", "LUSAKA ", "ZAMBIE",

"HARARE ", "ZIMBABWE" };

System.out.print(tabPays);

char choice = '°';
BufferedReader clavier = new BufferedReader(new InputStreamReader(
System.in));

while (choice != '4') {
System.out
.println("Veuillez effectuer un choix parmis ceux-ci:\n 1-voir"
+ " les données \n 2-Jouer à deviner les capitales \n "
+ "3-Voir les " + "options \n 4-Quitter");
choice = clavier.readLine().toUpperCase().charAt(0);
switch (choice) {
case '1':// Voir les données
afficherTout(tabNoms);
afficherCapitale(tabNoms);
break;
case '2':// jouer une partie

jouerUnePartie(tabNoms);

break;
case '3'://
// Voir les options
break;
case '4':// Quitter
break;

}

}

}

private void afficherCapitale(String[] tabNoms) {
// TODO Auto-generated method stub

}



private String[] jouerUnePartie(String[] tabNoms) {
// TODO Auto-generated method stub

return tabNoms;
}

private void afficherTout(String[] tabNoms) throws IOException {

// TODO Auto-generated method stub

char choisir = '°';
BufferedReader clavier = new BufferedReader(new InputStreamReader(
System.in));
System.out.println("Veuillez effectuer un choix parmis ceux-ci:\n "
+ "1-Afficher tout" + "\n 2-Chercher par capitale\n "
+ "3-Chercher" + "par pays\n" + " 4-Quitter ce menu");
while (choisir != '4') {
choisir = clavier.readLine().toUpperCase().charAt(0);
switch (choisir) {

case '1':// afficher tout

for (int i = 0; i < tabNoms.length; i++) {

System.out.format("%s %s\n\n", tabNoms[i++], tabNoms[i]
.trim());
}

break;

case '2':
for (int i = 0; i < tabNoms.length; i+=2) {

for(int k =1; k< tabNoms.length; k+=2);




System.out.print(tabNoms[i]+tabNoms[k]);


}

break;
case '3'://
// chercher par pays
break;
case '4':// Quitter
break;


}

}



}
}
A voir également:

2 réponses

Utilisateur anonyme
15 févr. 2009 à 08:41
Salut,

J'ai corrigé ou complété les 2 cas:
voir les données/afficher tout et
jouer à deviner ....
en conservant ton idée

Comme je compare le nom du pays choisi au nom du pays du tableau et que ce nom etait parfois suivi d'un espace, ainsi que les noms des capitales j'ai supprimé ces espaces dans le tableau.

On ne choisi pas le pays en entrant son nom, mais un nombre impair de 1 à longueur du tableau -1.

Regardes, ca te donnera peut-ètre des idées pour poursuivre. Compiles et dis moi ce que tu en penses.


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
* @author Cyberaction
*
*/
public class Tp1
{
static final int ABSENT = -1;
static final int CAPITALE = 0;
static final int PAYS = 1;
int lgTabNoms = 0;
int nbrePays = 0;

String choix = "";

BufferedReader clavier = new BufferedReader(new InputStreamReader(
System.in));

public static void main(String[] args) throws IOException
{
new Tp1().menu();
// TODO Auto-generated method stub
}

private int k;
private int i;



public void menu() throws IOException
{
// TODO Auto-generated method stub
String tabPays = "";
String[] tabNoms = { "KABOUL", "AFGHANISTAN", "TIRANA",
//String[] tabNoms = { "KABOUL", "AFGHANISTAN", "TIRANA",
"ALBANIE", "ALGER", "ALGERIE", "BERLIN",
"ALLEMAGNE", "LUANDA", "ANGOLA", "RIYAD",
"ARABIE SAOUDITE", "CANBERRA", "AUSTRALIE", "VIENNE",
"AUTRICHE", "DACCA", "BANGLADESH", "BRUXELLES",
"BELGIQUE", "BELMOPAN", "BELIZE", "THIMPHU", "BHUTAN",
"RANGOON", "BIRMANIE", "SUCRE", "BOLIVIE",
"GABORONE", "BOSTWANA", "BRASILIA", "BRESIL",
"BEGAWAN", "BRUNEI", "SOFIA", "BULGARIE",
"BUJUMBURA", "BURUNDI", "YAOUNDE", "CAMEROUN",
"OTTAWA", "CANADA", "SANTIAGO", "CHILI",
"PEKIN", "CHINE", "NICOSIE", "CHYPRE",
"BOGOTA", "COLOMBIE", "MORONI", "COMORES",
"SEOUL", "COREE DU SUD", "ABIDJAN",
"COTE D'IVOIRE", "LA HAVANE", "CUBA", "COPENHAGUE",
"DANEMARK", "DJIBOUTI", "DJIBOUTI", "CAIRE",
"EGYPTE", "QUITO", "EQUATEUR", "MADRID",
"ESPAGNE", "WASHINGTON", "ETATS UNIS", "HELSINKI",
"FINLANDE", "PARIS", "FRANCE", "LIBREVILLE", "GABON",
"BANJUL", "GAMBIE", "ACCRA", "GHANA",
"ATHENES", "GRECE", "CONAKRY", "GUINEE",
"MALABO", "GUINEE ÉQUATORIALE", "BISSAU",
"GUINEE BISSAU", "UAGADOUGOU", "HAUTE VOLTA", "BUDAPEST",
"HONGRIE", "MALES", "ILES MALDIVES", "DELHI",
"INDE", "DJAKARTA", "INDONESIE", "BAGDAD", "IRAK",
"TEHERAN", "IRAN", "DUBLIN", "IRLANDE",
"REYKJAVIK", "ISLANDE", "ROME", "ITALIE",
"KINGSTON", "JAMAIQUE", "TOKYO", "JAPON",
"AMMAN", "JORDANIE", "NAIROBI", "KENYA",
"KOWEIT", "KOWEIT", "VIENTIANE", "LAOS",
"MASERU", "LESOTHO", "BEYROUTH", "LIBAN",
"MONROVIA", "LIBERIA", "TRIPOLI", "LIBYE",
"VADUZ", "LIECHTENSTEIN", "LUXEMBOURG", "LUXEMBOURG",
"LILONGWE", "MALAWI", "BAMAKO", "MALI",
"RABAT", "MAROC", "NOUAKCHOTT", "MAURITANIE",
"MEXICO", "MEXIQUE", "MAPUTO", "MOZAMBIQUE",
"WINDHOEK", "NAMIBIE", "YAREN", "NAURU",
"KATMANDOU", "NEPAL", "MANAGUA", "NICARAGUA",
"NIAMEY", "NIGER", "LAGOS", "NIGERIA",
"OSLO", "NORVEGE", "MASCATE", "OMAN",
"KAMPALA", "OUGANDA", "ISLAMABAD", "PAKISTAN",
"PANAMA", "PANAMA", "ASCUNCION", "PARAGUAY",
"AMSTERDAM", "PAYS BAS", "LIMA", "PEROU",
"QUEZON", "PHILIPPINES", "VARSOVIE", "POLOGNE",
"LISBONNE", "PORTUGAL", "BANGUI",
"REPUBLIQUE CENTRAFRICAINE", "PRETORIA",
"REPUBLIQUE D'AFRIQUE DU SUD", "BRAZZAVILLE",
"REPUBLIQUE DU CONGO", "TANANARIVE", "REPUBLIQUE MALGACHE",
"PRAGUE", "REPUBLIQUE TCHEQUE", "BUCAREST",
"ROUMANIE", "LONDRES", "ROYAUME UNI", "MOSCOU",
"RUSSIE", "KIGALI", "RWANDA", "APIA", "SAMOA",
"DAKAR", "SENEGAL", "VICTORIA", "SEYCHELLES",
"FREETOWN", "SIERRA LEONE", "MOGADISCIO", "SOMALIE",
"KHARTOUM", "SOUDAN", "STOCKHOLM", "SUEDE",
"BERNE", "SUISSE", "PARAMARIBO", "SURINAM",
"MBABANE", "SWAZILAND", "DAMAS", "SYRIE",
"TAIPEH", "TAIWAN", "BANGKOK", "THAILANDE",
"LOME", "TOGO", "TUNIS", "TUNISIE",
"ANKARA", "TURQUIE", "MONTEVIDEO", "URUGUAY",
"CARACAS", "VENEZUELA", "HANOI", "VIETNAM",
"KINSHASA", "ZAIRE", "LUSAKA", "ZAMBIE",
"HARARE", "ZIMBABWE" };

lgTabNoms = tabNoms.length;
nbrePays = lgTabNoms/2;

System.out.println("\nNombre de pays/capitales" + nbrePays);
//System.out.print(tabPays);

char choice = '°';
clavier = new BufferedReader(new InputStreamReader(
System.in));

while (choice != '4')
{
System.out
.print("\nVeuillez effectuer un choix parmi ceux-ci:\n 1-voir"
+ " les données \n 2-Jouer à deviner les capitales\n "
+ "3-Voir les " + "options \n 4-Quitter\n>>>> ");
choice = clavier.readLine().toUpperCase().charAt(0);
switch (choice) {
case '1':// Voir les données
afficherTout(tabNoms);
afficherCapitale(tabNoms);
break;
case '2':// jouer une partie
jouerUnePartie(tabNoms);
break;
case '3'://
// Voir les options
break;
case '4':// Quitter
System.exit(0);
break;

}

}

}

private void afficherCapitale(String[] tabNoms)
{
// TODO Auto-generated method stub

}


private void jouerUnePartie(String[] tabNoms) throws IOException
//private String[] jouerUnePartie(String[] tabNoms)
{
// TODO Auto-generated method stub
System.out.print(
"\nVeuillez entrer un nombre impair de 1 à " + (lgTabNoms-1) + ":\n>>>> ");
//choice = clavier.readLine().toUpperCase().charAt(0);
choix = clavier.readLine();
i = Integer.parseInt(choix);

// ici verifier qu'on a bien entré un nombre impair de 1 a lgTabNoms-1

System.out.println("Pays : " + tabNoms[i]);
System.out.print(
"\nVeuillez entrer le nom de la capitale de ce pays:\n>>>> ");
choix = clavier.readLine().toUpperCase();

if (choix.equals(tabNoms[(i-1)]))
System.out.println("EXACT !!!\n");
else
System.out.println("FAUX !!!\n");

//return tabNoms;
}

private void afficherTout(String[] tabNoms) throws IOException
{

// TODO Auto-generated method stub

char choisir = '°';
clavier = new BufferedReader(new InputStreamReader(
System.in));
while (choisir != '4')
{
System.out.print("\nVeuillez effectuer un choix parmi ceux-ci:\n "
+ "1-Afficher tout" + "\n 2-Chercher par capitale\n "
+ "3-Chercher" + "par pays\n" + " 4-Quitter ce menu\n>>>> ");
//while (choisir != '4') {
choisir = clavier.readLine().toUpperCase().charAt(0);
switch (choisir) {

case '1':// afficher tout

for (int i = 0; i < tabNoms.length - 1; i = i+2)
{

System.out.format("%s %s\n\n", tabNoms[i+1], tabNoms[i]
.trim());
}
break;

case '2':
for (int i = 0; i < tabNoms.length; i+=2)
{

for(int k =1; k< tabNoms.length; k+=2);




System.out.print(tabNoms[i]+tabNoms[k]);


}

break;
case '3'://
// chercher par pays
break;
case '4':// Quitter
break;
}
}
}
}

Cordialement,

Dan
0
Utilisateur anonyme
15 févr. 2009 à 08:51
Ps,

Pour donner le nom de lacapitale dans le cas où c'est incorrect:

.........


else
System.out.println("FAUX !!!\n"
+ "le nom de la capitale est : " + tabNoms[(i-1)]);
0