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

avec Java Discussion :

Exercice en Java


Sujet :

avec Java

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    testing integration de systemes
    Inscrit en
    Octobre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : testing integration de systemes
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Exercice en Java
    Bonjour,

    Je suis débutante en Java et je l’étudie grâce à un cours en ligne.

    J'ai un petit problème avec une partie de mon exercice, je dois calculer et afficher la population pour toutes les années devant s'écouler jusqu'à ce que la "populationCible" soit atteinte.

    Dans la console j'ai donné "combien de milliards (>7.0) ? ===> 8.5" mais mon programme s'arrête à l'année au lieu de s'arrêter à la populationCible que j'ai donnee (8.5).

    Je comprends mon erreur qui est le while (anneeCourante < anneeFinale ) mais je ne comprend absolument pas comment écrire while (populationCible == le nombre que l utilisateur met en input "populationCible = keyb.nextDouble();"

    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
    //Declare la variable :  PopulationCible entree par l'utilisateur
            double populationCible; 
     
     
            //Loop tant que l'utilisateur entre une annee PopulationCible < PopulationInitiale
            do {
                  System.out.print("Combien de milliards (> 7.0) ?");
                  populationCible = keyb.nextDouble();
               }      while (populationCible < populationInitiale);
     
            //calcule et affiche la population pour toutes les années
            //devant s'écouler jusqu'à ce que la population cible soit atteinte
     
            int nb = anneeCourante - anneeInitiale;
     
            while (anneeCourante < anneeFinale ) {
                  anneeInitiale += 1;   
                  ++nb;
                  populationFinale = (populationInitiale  * Math.exp (( nb) * 0.012));
                  System.out.println("Population en " + anneeInitiale  + " : " + df.format(populationFinale));
                  ++anneeCourante;
     
            }
    Console :
    Population en 2011 : 7.000
    Quelle année (> 2011) ? 2021
    Population en 2021 : 7.892
    Combien de milliards (> 7.0) ?8.5
    Population en 2012 : 7.085
    Population en 2013 : 7.170
    Population en 2014 : 7.257
    Population en 2015 : 7.344
    Population en 2016 : 7.433
    Population en 2017 : 7.523
    Population en 2018 : 7.613
    Population en 2019 : 7.705
    Population en 2020 : 7.798
    Population en 2021 : 7.892
    Quelqu'un saurait-il me guider un peu ?

    Merci de votre aide

  2. #2
    Nouveau Candidat au Club
    Femme Profil pro
    testing integration de systemes
    Inscrit en
    Octobre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : testing integration de systemes
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'ai trouvé la solution.

    le while est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    } while (populationFinale < populationCible);

  3. #3
    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 : 472
    Points
    472
    Par défaut
    Bonjour,

    Tu sembles être perdue dans tes variables.
    Logiquement, l'année initiale ainsi que la population initiale sont des constantes.
    Elles ne sont pas amenées a changer au cours de l'exécution de ton programme/de ta méthode.

    Or tu nous fais un "anneeInitiale += 1;".

    Il te faut une variable qui représente le nombre d'années écoulées (n) depuis ton année initiale et une autre qui représente la population a l'année n.

    Tant que ta population à l'année n est inférieure a la population souhaitée, tu incrementes l'année n, et tu mets a jour ta variable qui représente ta population a l'année n.

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    testing integration de systemes
    Inscrit en
    Octobre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : testing integration de systemes
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Variable constante
    Bonjour

    Merci pour ta reponse.
    En effet, je ne savais pas qu une valable constante ne devait pas changer de valeur.
    Je comprends maintentant que lorsque j ai besoin de changer la valeur d une variable constante il me faut creer une autre variable.

  5. #5
    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 : 472
    Points
    472
    Par défaut
    Ce n'est pas exactement ce que j'ai dis.
    Conceptuellement, dans ton problème, ce n'est pas l'année initiale que tu dois incrémenter.
    - Soit tu gardes l'année initiale : dans ce cas la ce n'est plus une variable mais une constante et il te faut une nouvelle variable qui représente l'année N
    - Soit tu change ton nom de variable, tu l'appels directement anneeN mais pas anneeInitiale et tu l'initialise par defaut avec l'année initiale.

    Le nom de tes variables doit être explicite et avoir un sens dans ton code. Incrémenter l'année initiale, ça n'a pas de sens.

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

Discussions similaires

  1. [8051] Aide sur un exercice
    Par john491 dans le forum Autres architectures
    Réponses: 4
    Dernier message: 04/05/2006, 11h22
  2. Besoin d'aide pour un exercice sur les registres
    Par zakuza dans le forum Assembleur
    Réponses: 5
    Dernier message: 14/04/2006, 14h23
  3. Aide pour un exercice
    Par nelob dans le forum Assembleur
    Réponses: 5
    Dernier message: 02/03/2006, 23h46
  4. Demande d'aide pour un exercice
    Par IDE dans le forum C
    Réponses: 3
    Dernier message: 29/10/2005, 15h09

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