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 :

introduire la valeur maximal au clavier


Sujet :

avec Java

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 10
    Par défaut introduire la valeur maximal au clavier
    bonjours c'est encore moi

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    /**Entrainement aux multiplications,
    */
     
    public class Multiplications2{
     
       public static java.util.Scanner scanner = new java.util.Scanner(System.in);
     
       public static void main(String[] args) {
     
     
          System.out.println("Entrainement aux multiplications. Voici 5 exercices :");	
          for (int compteur = 0; compteur < 5; compteur++) {
             faireUneMultiplication();
     
          }
       }
     
     
    	/**
             * Propose une multiplication de 2 nombres entre 0 et 10.
             */
       public static void faireUneMultiplication(){
     
          int premierNombre, secondNombre, reponseCorrecte, reponseEleve;
     
          System.out.println ("Voici un exercice :");
          premierNombre   = unEntierAuHasardEntre (0, 10);
          secondNombre    = unEntierAuHasardEntre (0, 10);
          reponseCorrecte = premierNombre * secondNombre;
          System.out.println ("Calcule: " + premierNombre + "x" + secondNombre + "=");
          reponseEleve = scanner.nextInt(); 
     
          if (reponseEleve == reponseCorrecte) {
             System.out.println("Tres bien");
          } else {
             System.out.println("Non, c'etait : " + reponseCorrecte);
          }
     
       }
     
       public static int unEntierAuHasardEntre (int valeurMinimale, int valeurMaximale){
          double nombreReel;
          int resultat;
     
          nombreReel = Math.random();
          resultat = (int) (nombreReel * (valeurMaximale - valeurMinimale + 1))
             					+ valeurMinimale;
          return resultat;
       }
    }
    donc j'ai un premier code ici qui m'affiche 5 exercices mais les valeurs sont defini entre 0 et 10 alors moi ce que je veux faire c'est definir la valeur maximale au clavier donc pour je vais utiliser un boucle for alors ma question est ce que je dois cree un boucle for pour le premierNombre et le secondeNombre c'est mieux de les traiter séparément ou de les mettres ensemble ?
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    //Entrainement aux multiplications
    public class Multiplications2{
     
       public static java.util.Scanner scanner = new java.util.Scanner(System.in);
     
       public static void main(String[] args) {
     
     
          System.out.println("Entrainement aux multiplications. Voici 5 exercices :");	
          for (int compteur = 0; compteur < 5; compteur++) {
             faireUneMultiplication();
     
          }
       }
       public static void faireUneMultiplication(){
     
          int premierNombre, secondNombre, reponseCorrecte, reponseEleve, unEntierAuHasardEntre;
          int max;
          System.out.println ("Voici un exercice :");
          for (int i=0; i<=max; i++) {
          max = scanner.nextInt();
     
          premierNombre   = unEntierAuHasardEntre (0, max);
          secondNombre    = unEntierAuHasardEntre (0, max);
     
          }
     
          reponseCorrecte = premierNombre * secondNombre;
          System.out.println ("Calcule: " + premierNombre + "x" + secondNombre + "=");
          reponseEleve = scanner.nextInt(); 
     
          if (reponseEleve == reponseCorrecte) {
             System.out.println("Tres bien");
          } else {
             System.out.println("Non, c'etait : " + reponseCorrecte);
          }
     
       }
     
       public static int unEntierAuHasardEntre (int valeurMinimale, int valeurMaximale){
          double nombreReel;
          int resultat;
     
          nombreReel = Math.random();
          resultat = (int) (nombreReel * (valeurMaximale - valeurMinimale + 1))
             					+ valeurMinimale;
          return resultat;
       }
    }
    pour l'instant jen suis la

  2. #2
    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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
          int max;
          System.out.println ("Voici un exercice :");
          for (int i=0; i<=max; i++) {
          max = scanner.nextInt();
     
          premierNombre   = unEntierAuHasardEntre (0, max);
          secondNombre    = unEntierAuHasardEntre (0, max);
     
          }
    Tu ne peux pas utiliser la valeur d'une variable qui n'a pas encore été initialisée. Dans ton code, max est créé sans aucune valeur, donc la condition i<=max ne peut pas compiler (on ne peut pas comparer i avec rien).

    Pour ton problème, ce que tu cherches à faire n'est pas très clair. Dans ton premier code, on fait 5 fois un exercice qui consiste à tirer deux nombres au hasard, entre 0 et 10, et de saisir leur produit en réponse. Dans ton second code, tu introduis la variable max qui gère à la fois le nombre d'exercices et le max de l'intervalle de tirage des nombres à multiplier. De manière générale, il faut toujours éviter de gérer deux trucs qui n'ont pas vraiment de rapport avec la même variable. Si tu veux pouvoir paramétrer le nombre de fois que l'exercice est posé, utilise une variable pour ça. Si tu veux pouvoir paramétrer l'intervalle de tirage, utilise une autre variable. Ainsi, premièrement, la variable qui sert pour le nombre d'exercices n'est utile que pour la boucle, le for. Donc on la lit avant de commencer la boucle, et on peut donc s'en servir dans le for. Ensuite, si le nombre max doit être demandé à chaque nouvel exercice, demande-le dans le for, sinon avant, dans une autre variable que celle utilisée pour la boucle (éventuellement si le nombre d'exercices est supérieur à 0, sinon ça sert à rien). Si la problématique est de demander un nombre à l'utilisateur qui détermine l'intervalle de tirage au sort, et que s'il saisit un nombre spécial (par exemple un nombre négatif), on arrête de lui poser des questions, il faut procéder différemment. Soit avec un for, il faut initialiser max avec une valeur suffisamment grande pour que la boucle s'effectue forcément une fois, ou lui poser la question au moins une fois avant le for, soit utiliser un do/while (là tu n'est pas obligé d'initialiser max avant, puisque la condition sera faite en fin de boucle, donc après max soit initialisée, soit utiliser un while (c'est exactement le même principe que pour un for).
    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.

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/04/2010, 15h59
  2. [hook] Récuperer les valeurs des touches clavier
    Par TylerKnoxx dans le forum Windows
    Réponses: 0
    Dernier message: 09/12/2008, 11h06
  3. Introduire la valeur de retour d'un js dans un champ hidden html
    Par delma dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/02/2008, 14h30
  4. [XSLT]introduire la valeur d'un noeud dans une balise html
    Par delma dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 19/10/2006, 22h08
  5. Script ksh - Valeur maximal d'un PID
    Par fidififouille dans le forum Linux
    Réponses: 7
    Dernier message: 09/08/2004, 10h10

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