IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Bloqué dans un calcul d'itération avec tableau


Sujet :

Collection et Stream Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 18
    Points : 13
    Points
    13
    Par défaut Bloqué dans un calcul d'itération avec tableau
    Bonjour,

    Tout d'abord merci pour la future aide ou les remarques que vous m'apporterez, je suis ouvert à toutes critiques étant néophyte en programmation.

    Alors voici mon problème: Je dois créer un jeu sur le principe simplifié de l'Eurovision.
    Je m'explique -> Il y aurait 5 pays, chaque pays pouvant 3x (premier vote valant 5points, 2eme vote 3points, 3eme vote 1point).
    Je compte rajouter des conditions par la suite (empêcher un pays de voter pour son propre pays ou de voter 2x pour le même pays par exemple).

    Enfait je suis bloqué dans l'addition de mon tableau tabPoints -> il devrait comporter en rang l'addition de tous les votes pour un pays. Hors ce n'est vraiment pas le cas, je suis dessus depuis plusieurs heures (jours..) et j'ai vraiment l'impression que c'est une bêtise, cependant je n'arrive pas à la corriger >.>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    import java.util.Scanner;
     
    public class Euronew {
     
    	public static void main(String[] args) {
    		Scanner clavier = new Scanner (System.in);
     
     
    		String tabPays[] = {"Belgique", "Allemagne", "France" , "Luxembourg", "Pays-Bas"};
    		int tabPoints[] = new int[5];
    		int tabCompteurPoints[] = new int[3];
     
     
    		tabCompteurPoints[0] = 5;
    		tabCompteurPoints[1] = 3;
    		tabCompteurPoints[2] = 1;
     
    		for(int i = 0; i < 1; i++){
    			//Boucle par pays(tabPays)
     
    			System.out.println("Vous devez effectuer les votes pour le pays suivant: " + tabPays[i]);
     
     
    			for(int j = 0; j < tabCompteurPoints.length; j++){
    				// Boucle demandant pour quel pays veut-il voter (tabPays)
     
     
    				System.out.println("Pour quel pays voulez-vous voter?" );
     
    				System.out.println("1: " + tabPays[0] + " 2: " + tabPays[1] + " 3: " + tabPays[2] + " 4: " + tabPays[3] + " 5: " + tabPays[4]);
    				System.out.println( "Ce vote compte pour " + tabCompteurPoints[j] + " points.");
    				tabPoints[j] = clavier.nextInt();
    				 tabPoints[j]= tabPoints[j]+tabCompteurPoints[j]; /* Mon probleme est ici je pense */
     
    			}
    			}
    		for(int k = 0; k < tabPoints.length; k++)
    		System.out.println(tabPays[k] + ": " + tabPoints[k]);
    	}		
    	}
    Merci encore une fois pour toute l'aide que vous pourrez m'apporter :-)

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2013
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2013
    Messages : 191
    Points : 458
    Points
    458
    Par défaut
    De ce que j'imagine, ta saisie correspond à l'indice du pays (1 pour Belgique, 2 pour Allemagne etc...).
    Alors pourquoi mettre l'indice du pays dans le tabPoints ?

    N'est-ce pas plutôt une opération du style tabPoint[indicePays] = tabPoint[indicePays] + tabCompteurPoints[j];indicePays = clavier.nextInt() -1 (puisqu'en java, les indexs commencent à 0)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Effectivement, mais comment l'appliquer correctement?
    J'ai beau y réfléchir et essayer ça plante à chaque fois...

    Le plus correct me semblerait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    				tabPoints[i] = clavier.nextInt();
    				tabPoints[i] = tabPoints[i] + tabCompteurPoints[j];
    Mais c'est également faux :/

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2013
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2013
    Messages : 191
    Points : 458
    Points
    458
    Par défaut
    J'ai édité mon message en même temps que tu as rédigé ta réponse, je t'invite a lire ma première réponse édité

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    C'est ce que j'ai fait après modification (ce que j'ai mis juste au-dessus) sauf pour le -1 que je viens de mettre mais malheureusement cela ne change rien

    J'ai donc actuellement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    			tabPoints[i] = clavier.nextInt() - 1;
    				tabPoints[i] = tabPoints[i] + tabCompteurPoints[j];
    Où alors peut-être ai-je mal interprêté/compris ta réponse? (Ce que je n'exclus pas :p)

    Merci déjà pour ton aide apportée en tout cas :-)

    (je viens d'éditer, j'avais oublier de mettre le -1 dans ce message)

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Citation Envoyé par Korpin Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    			tabPoints[i] = clavier.nextInt() - 1;
    Relis ce qu'à ecrit @EyZox, c'est l'indice du pays qu'on lit au clavier, pas le score pour cet indice, donc c'est int pays= clavier.nextInt()-1;. Et évidemment, il faut appliquer le vote au pays chosi : tabPoints[pays] = tabPoints[pays] + tabCompteurPoints[j];. Ensuite, tu pourras comparer i et pays pour éviter qu'un pays vote pour lui-même, par exemple.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Okkkkkkkkkkkk!!!
    Il me manquait donc une variable supplémentaire (pays).
    Effectivement ça tourne correctement maintenant!!!
    Merci beaucoup pour votre aide à tous les deux, il ne me manque plus qu'à faire les conditions ainsi qu'un tri dans ma dernière boucle pour classer les pays par ordre croissant de points!

    PS: Sorry pour le Help dans le titre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calculer l'âge avec dates dans Excel
    Par crosse9 dans le forum Excel
    Réponses: 9
    Dernier message: 06/01/2011, 14h52
  2. Contraintes dans les calculs avec des entiers
    Par boromir73 dans le forum Ada
    Réponses: 5
    Dernier message: 07/10/2007, 19h02
  3. Collé dans le composant F1Book : pb avec tableau
    Par avogadro dans le forum Composants VCL
    Réponses: 2
    Dernier message: 22/11/2006, 23h31
  4. Pb de lecture données dans une plage de cellule avec itération
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/07/2006, 13h33
  5. Probleme dans un calcul avec un nombre negatif
    Par el_quincho dans le forum Access
    Réponses: 4
    Dernier message: 05/06/2006, 14h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo