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
Utilisateur anonyme - 15 févr. 2009 à 08:51
A voir également:
- Problème avec tableau en java
- Tableau croisé dynamique - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Tableau ascii - Guide
- Tableau word - Guide
2 réponses
Utilisateur anonyme
15 févr. 2009 à 08:41
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
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
Utilisateur anonyme
15 févr. 2009 à 08:51
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)]);
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)]);