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 :

Premier programme Java


Sujet :

avec Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Premier programme Java
    Bonjour,

    J'étudie actuellement dans un cours de java. j'ai écris mon premier programme pour répondre aux exigences de l’énoncé ci-après.
    Après relecture de mon programme je ne comprend pas pour il ne fonctionne pas.
    Je demande donc votre aide pour m'expliquer pourquoi.

    Merci d'avance.

    Phil

    Enoncé :

    Saisie et validation des informations
    Le programme devra permettre de saisir au clavier les informations suivantes et de les valider suivant les règles définies:

    Informations du joueur.
    Nom: Une chaine de caractère dont la longueur est comprise entre 3 et 256 caractères.
    Prénom: Une chaine de caractère dont la longueur est comprise entre 3 et 256 caractères.
    Âge: entier compris entre 10 et 90 inclusivement.
    Les informations sur les parties de Sudoku jouées
    Pour chaque partie de Sudoku, voici les informations demandées:
    Niveau de difficulté (facile, moyen ou difficile)
    Partie gagnée ou perdue?
    Si gagné : temps de résolution de la grille.


    Traitement et affichage des résultats
    Le programme devra calculer les statistiques suivantes:

    Calculer pour chaque niveau le nombre de parties non terminées, le nombre de parties gagnées, le temps de résolution moyen et le taux de réussite du joueur.
    Le temps de résolution moyen constitue la moyenne de temps de résolution des parties gagnées par le joueur.
    Le taux de réussite constitue le pourcentage du nombre de parties gagnées par rapport au nombre de parties totales.
    Calculer les statistiques globales qui représentent les statistiques de tous les niveaux de jeu.
    Mon code :

    Tp2.java
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    package tp2;
     
    import java.util.Scanner;
     
    public class Tp2 {
     
      static Scanner clavier = new Scanner(System.in); //clavier : nom générique pour tout le programme
     
        public static void main(String[] args) {
            // Création des variables pour les informations du joueur et des différents parties
            int niveau; 
            String nom = ""; 
            String prenom = ""; 
            String age = "";       
            int partie_facile = 0; // Nombre de parties faciles jouées
            int partie_moyen = 0; // Nombre de parties moyens jouées
            int partie_difficile = 0; //Nombre de parties difficiles jouées
            int partie_facile_terminee = 0; // Nombre de parties faciles gagnées
            int partie_moyen_terminee = 0; // Nombre de parties moyens gagnées
            int partie_difficile_terminee = 0; // Nombre de parties difficiles gagnées
            int temps_facile = 0; // Temps de résolution de la grille facile
            int temps_moyen = 0; // Temps de résolution de la grille moyen
            int temps_difficile = 0; // Temps de résolution de la grille difficile
            // Création de variables pour les statistiques
            int tmr_facile=temps_facile/partie_facile_terminee; // Temps moyen de résolution au niveau facile
            int tmr_moyen=temps_moyen/partie_moyen_terminee; // Temps moyen de résolution au niveau moyen
            int tmr_difficile=temps_difficile/partie_difficile_terminee; // Temps moyen de résolution au niveau difficile
            int partie_perdue=((partie_facile)+(partie_moyen)+(partie_difficile))-((partie_facile_terminee)+(partie_moyen_terminee)+(partie_difficile_terminee));
            // Nombre total de partie perdues
            int partie_gagnee=((partie_facile_terminee)+(partie_moyen_terminee)+(partie_difficile_terminee));
            // Nombre total de parties gagnées
            int trm_global=((tmr_facile)+(tmr_moyen)+(tmr_difficile))/3; // Temps de résolution moyen global
            int partie_jouee=((partie_facile)+(partie_moyen)+(partie_difficile)); // Nombre total de parties jouées
            int taux_global=((100*(partie_facile_terminee)/(partie_facile))+(100*(partie_moyen_terminee)/(partie_moyen))+(100*(partie_difficile_terminee)/(partie_difficile))/3);
            // Pourcentage de réussite global
     
     
            System.out.println("-------Informations personnelles");
                // AFFICHAGE NOM
                int condition_nom = 0; // variable pour la condition sur la limite du nombre de caractére
                while (condition_nom == 0) { // tant que la condition n'est pas égale à 1
     
                   System.out.print("Nom : ");
                   nom = clavier.nextLine();
     
                    if (nom.length()<3) { // si le nom inséré a moins de 3 caractéres
                        System.out.println("Votre nom doit être compris entre 3 et 256 caractères");
     
                        condition_nom = 0; // = à 0 tant que la condition n,est pas remplie
                    }
     
                    else if (nom.length()>256) { // si la variable a plus de 256 caractére
                        System.out.println("Votre nom doit être compris entre 3 et 256 caractères");
     
                        condition_nom = 0; // = à 0 tant que la condition n,est pas remplie
                    }
                    else {
     
                        condition_nom = 1; // condition remplie et sortie de la boucle
     
                    }
     
                }
                // AFFICHAGE PRÉNOM (mêmes explication que pour l'affichage du nom)
                 int condition_prenom = 0;
                 while (condition_prenom == 0) {
     
                   System.out.print("Prénom : "); // Afficher : "prénom :"
                   prenom = clavier.nextLine();
     
                    if (prenom.length()<3) {
                        System.out.println("Votre prénom doit être compris entre 3 et 256 caractères"); // Si les caractères sont inférieurs à 3, aolrs afficher message
     
                        condition_prenom = 0;
                    }
     
                    else if (prenom.length()>256) {                   
                       System.out.println("Votre prenom doit être compris entre 3 et 256 caractères"); // Si les caractères sont supérieurs à 256, aolrs afficher message
     
                        condition_prenom = 0;
                    }
                    else {
     
                        condition_prenom = 1; // Condition réussite               
     
                    }              
     
                }
                    // AFFICHAGE DE L'ÂGE
                    int condition_age = 0; // création de la variable âge
                    while (condition_age == 0) { // tant que la condition n'est pas égale à 1
     
                        System.out.print("Âge : " + age);
                        age = clavier.nextLine();
     
                    if (Integer.parseInt(age) <= 10) { // Si le nombre est inférieur ou égale à 10 
                        System.out.println("Votre âge doit être compris entre 10 et 90 ans");
     
                        condition_age = 0; // = à 0 tant que la codition n'est pas remplie
     
     
                    }   
     
                    else if (Integer.parseInt(age) >=90) { // si le nombre est supérieur à 90
                        System.out.println("Votre âge doit être compris entre 10 et 90 ans");
     
                        condition_age = 0; // = à 0 tant que la codition n'est pas remplie
                    }
     
                    else {
                        condition_age = 1; // condition remplie et sortie de la boucle
     
                    }
                }
                    System.out.println("-------");
                    System.out.println("");// ligne créée pour un espace, pour faciliter la visibilité
                    System.out.println("");// ligne créée pour un espace, pour faciliter la visibilité
     
     
     
                // CHOIX DU NIVEAU DE DIFFICULTÉ
                System.out.println("Veuillez choisir un nineau de jeu");
                System.out.println("-------");
                System.out.println("Entrer 1 pour le niveau facile");
                System.out.println("Entrer 2 pour le niveau moyen");
                System.out.println("Entrer 3 pour le niveau difficile");
                System.out.println("-------");
     
                 niveau = clavier.nextInt();
     
            if(niveau == 1) { // Commande pour valider une partie gagnée ou perdue
                int choix1;
     
                    partie_facile++; // Incrémentation de la partie facile
     
                    System.out.println("Avez-vous gagné la partie?");
                    System.out.println("Sélectionner 4 pour gagnée");
                    System.out.println("Sélectionner 5 pour perdue");
                    choix1 = clavier.nextInt();
     
     
            switch (choix1) // Choix du "switch" pour créer une boucle
            {
     
     
                case 4 :
     
                    partie_facile_terminee++;
     
                    System.out.print("Temps de résolution de la grille : ");
                    temps_facile = clavier.nextInt();
     
                    System.out.print("La grille a été réussite en " + temps_facile + " minutes");
     
                    break;      
     
                case 5 :
     
                     System.out.println("Vous ferez mieux la prochaine fois");
     
                        break;
                    }
            }
             if(niveau == 2) { // Commande pour valider une partie gagnée ou perdue
                int choix2;
     
                    partie_moyen++; // Incrémentation de la partie moyen
     
                    System.out.println("Avez-vous gagné la partie?");
                    System.out.println("Sélectionner 4 pour gagnée");
                    System.out.println("Sélectionner 5 pour perdue");
                    choix2 = clavier.nextInt();
     
     
            switch (choix2) // Choix du "switch" pour créer une boucle
     
            {
     
                case 4 :
     
                    partie_moyen_terminee++; // Incrémentation de la partie difficile
     
                    System.out.print("Temps de résolution de la grille : ");
                    temps_moyen = clavier.nextInt();
     
                    System.out.print("La grille a été réussite en " + temps_moyen + " minutes");
     
                    break;      
     
                case 5 :
     
                     System.out.println("Vous ferez mieux la prochaine fois");
     
                        break;
                    }
                } 
     
     
     
            if(niveau == 3) { // Commande pour valider une partie gagnée ou perdue
                int choix3;
     
                    partie_difficile++; // Incrémentation de la partie difficile
     
                    System.out.println("Avez-vous gagné la partie?");
                    System.out.println("Sélectionner 4 pour gagnée");
                    System.out.println("Sélectionner 5 pour perdue");
                    choix3 = clavier.nextInt();
     
     
            switch (choix3) // Choix du "switch" pour créer une boucle
     
            {
     
                case 4 :
     
                    partie_difficile_terminee++; 
     
                    System.out.print("Temps de résolution de la grille : ");
                    temps_difficile = clavier.nextInt();
     
                    System.out.print("La grille a été réussite en " + temps_difficile + " minutes");
     
                    break;      
     
                case 5 :
     
                     System.out.println("Vous ferez mieux la prochaine fois");
     
                        break;
                    }           
            } 
     
     
     
            // AFFICHAGE STATISTIQUES
            System.out.println("****************************Statistiques Sudoku****************************");
            System.out.println("");
     
            System.out.println("-----Informations personnelles");
            System.out.println("Nom : "+ nom + ".");
            System.out.println("Prénom : "+ prenom + ".");
            System.out.println("Âge : " + age + "ans.");
     
            System.out.println(""); //ligne créée pour un espace, pour faciliter la visibilité
     
            System.out.println("----------------------------Statistiques détaillées----------------------------");
            System.out.println(""); //ligne créée pour un espace, pour faciliter la visibilité
     
            System.out.println("-----Statistiques niveau facile");
            System.out.println("Nombre de parties non terminées : "+ ((partie_facile)-(partie_facile_terminee)));
            System.out.println("Nombre de parties gagnées : " + (partie_facile)+ " "+"Temps de résolution moyem : " + (tmr_facile));
            System.out.println("Nombre total de partie jouées : " + (partie_facile));
            System.out.println("Taux de réussite du joueur : " + 100*(partie_facile_terminee)/(partie_facile) +"%");
            System.out.println("-----");
     
            System.out.println(""); //ligne créée pour un espace, pour faciliter la visibilité
     
            System.out.println("-----Statistiques niveau moyen");
            System.out.println("Nombre de parties non terminées : "+ ((partie_moyen)-(partie_moyen_terminee)));
            System.out.println("Nombre de parties gagnées : " + (partie_moyen)+ " "+"Temps de résolution moyem : " + (tmr_moyen));
            System.out.println("Nombre total de partie jouées : " + (partie_moyen));
            System.out.println("Taux de réussite du joueur : " + 100*(partie_moyen_terminee)/(partie_moyen) +"%");
            System.out.println("-----");
     
            System.out.println(""); //ligne créée pour un espace, pour faciliter la visibilité
     
            System.out.println("-----Statistiques niveau difficile");
            System.out.println("Nombre de parties non terminées : "+ ((partie_difficile)-(partie_difficile_terminee)));
            System.out.println("Nombre de parties gagnées : " + (partie_difficile)+ " "+"Temps de résolution moyem : " + (tmr_difficile));
            System.out.println("Nombre total de partie jouées : " + (partie_difficile));
            System.out.println("Taux de réussite du joueur : " + 100*(partie_difficile_terminee)/(partie_difficile) +"%");
            System.out.println("-----");
     
            System.out.println(""); //ligne créée pour un espace, pour faciliter la visibilité
     
            System.out.println("----------------------------Statiatiques globales----------------------------");
            System.out.println("Nombre de parties perdues : " + (partie_perdue));
            System.out.println("Nombre de parties gagnées : " + (partie_gagnee) + " " + "Temps de résolution moyen : " + (trm_global));
            System.out.println("Nomnre total de parties jouées : " + (partie_jouee));
            System.out.println("Taux de réussite du joueur : " + (taux_global) +"%");
     
        }
    }

  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 : 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,

    Ton énoncé (ainsi que le code que tu nous donnes) ressemble fortement à celui exposé dans cette discussion : peut-être y trouveras-tu des réponses ?
    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.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour Joel,

    En effet c'est le même énoncé mais le problème que je rencontre n'est pas mentionné.

  4. #4
    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
    Décris quel problème tu rencontres alors...
    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.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    le voici:

    Exception in thread "main" java.lang.ArithmeticException: / by zero
    at tp2.Tp2.main(Tp2.java:26)

    mais je suis obligé d'initialisé ma variable à 0 ?!

  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
    Ce problème a été abordé dans l'autre discussion, il me semble bien.

    Dans le principe, comme on ne peut pas diviser par 0 (c'est vrai en math comme en informatique), il faut s'arranger pour ne pas le faire. Donc, il faut tester le diviseur et ne faire la division que s'il est différent de zéro (ou supérieur, à priori, dans le contexte).

    C'est comme si tu avais une moyenne de valeurs à calculer, tu ferais :

    Code pseudocode : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    si le nombre de valeurs est supérieur à zéro alors {
    
        afficher "La moyenne est égale à " 
        afficher somme totale de toutes les valeurs divisée par le nombre de valeurs
    
    } sinon {
    
        afficher "La moyenne ne peut être calculée : il n'y a aucune valeur saisie". (c'est un 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
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Je rajoute cette fonction dans le programme ou juste après avoir initialisé ma variable

  8. #8
    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
    On a avait vraiment déjà abordé ce point dans l'autre discussion...

    Le problème vient de là :

    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
    int partie_facile = 0; // Nombre de parties faciles jouées
            int partie_moyen = 0; // Nombre de parties moyens jouées
            int partie_difficile = 0; //Nombre de parties difficiles jouées
            int partie_facile_terminee = 0; // Nombre de parties faciles gagnées
            int partie_moyen_terminee = 0; // Nombre de parties moyens gagnées
            int partie_difficile_terminee = 0; // Nombre de parties difficiles gagnées
            int temps_facile = 0; // Temps de résolution de la grille facile
            int temps_moyen = 0; // Temps de résolution de la grille moyen
            int temps_difficile = 0; // Temps de résolution de la grille difficile
            // Création de variables pour les statistiques
            int tmr_facile=temps_facile/partie_facile_terminee; // Temps moyen de résolution au niveau facile
            int tmr_moyen=temps_moyen/partie_moyen_terminee; // Temps moyen de résolution au niveau moyen
            int tmr_difficile=temps_difficile/partie_difficile_terminee; // Temps moyen de résolution au niveau difficile
            int partie_perdue=((partie_facile)+(partie_moyen)+(partie_difficile))-((partie_facile_terminee)+(partie_moyen_terminee)+(partie_difficile_terminee));
            // Nombre total de partie perdues
            int partie_gagnee=((partie_facile_terminee)+(partie_moyen_terminee)+(partie_difficile_terminee));
            // Nombre total de parties gagnées
            int trm_global=((tmr_facile)+(tmr_moyen)+(tmr_difficile))/3; // Temps de résolution moyen global
            int partie_jouee=((partie_facile)+(partie_moyen)+(partie_difficile)); // Nombre total de parties jouées
            int taux_global=((100*(partie_facile_terminee)/(partie_facile))+(100*(partie_moyen_terminee)/(partie_moyen))+(100*(partie_difficile_terminee)/(partie_difficile))/3);
            // Pourcentage de réussite global
    J'ai l'impression que ce source était en fait fourni avec l’énoncé, parce que c'est exactement le même que dans l'autre discussion.

    Il y a un problème dans cette partie du code : on initialise une ribambelle de variables à zéro, puis on initialise une autre série de variables comme étant le quotient de quelque chose qui est à zéro divisé par quelque chose qui est à zéro (forcément on a tout initialisé à zéro).

    A mon avis, il était prévu que le code de saisie soit mis entre la partie initialisation et la partie calcul :

    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
    int partie_facile = 0; // Nombre de parties faciles jouées
            int partie_moyen = 0; // Nombre de parties moyens jouées
            int partie_difficile = 0; //Nombre de parties difficiles jouées
            int partie_facile_terminee = 0; // Nombre de parties faciles gagnées
            int partie_moyen_terminee = 0; // Nombre de parties moyens gagnées
            int partie_difficile_terminee = 0; // Nombre de parties difficiles gagnées
            int temps_facile = 0; // Temps de résolution de la grille facile
            int temps_moyen = 0; // Temps de résolution de la grille moyen
            int temps_difficile = 0; // Temps de résolution de la grille difficile
     
    // TOUT LE CODE DE SAISIE DOIT ETRE MIS ICI
     
     
            // Création de variables pour les statistiques
            int tmr_facile=temps_facile/partie_facile_terminee; // Temps moyen de résolution au niveau facile
            int tmr_moyen=temps_moyen/partie_moyen_terminee; // Temps moyen de résolution au niveau moyen
            int tmr_difficile=temps_difficile/partie_difficile_terminee; // Temps moyen de résolution au niveau difficile
            int partie_perdue=((partie_facile)+(partie_moyen)+(partie_difficile))-((partie_facile_terminee)+(partie_moyen_terminee)+(partie_difficile_terminee));
            // Nombre total de partie perdues
            int partie_gagnee=((partie_facile_terminee)+(partie_moyen_terminee)+(partie_difficile_terminee));
            // Nombre total de parties gagnées
            int trm_global=((tmr_facile)+(tmr_moyen)+(tmr_difficile))/3; // Temps de résolution moyen global
            int partie_jouee=((partie_facile)+(partie_moyen)+(partie_difficile)); // Nombre total de parties jouées
            int taux_global=((100*(partie_facile_terminee)/(partie_facile))+(100*(partie_moyen_terminee)/(partie_moyen))+(100*(partie_difficile_terminee)/(partie_difficile))/3);
            // Pourcentage de réussite global
    C'est logique :
    • on initialise
    • on saisie les informations
    • on fait les calculs avec les informations saisies (surtout, si, comme ici, on ne peut faire les initialisations des calculs avant d'avoir saisie quoi que ce soit)


    Ensuite, ça ne t'empêchera pas de faire les tests quand même, parce qu'on n'a pas la garantie que quelque chose soit finalement saisi...


    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
    int partie_facile = 0; // Nombre de parties faciles jouées
            int partie_moyen = 0; // Nombre de parties moyens jouées
            int partie_difficile = 0; //Nombre de parties difficiles jouées
            int partie_facile_terminee = 0; // Nombre de parties faciles gagnées
            int partie_moyen_terminee = 0; // Nombre de parties moyens gagnées
            int partie_difficile_terminee = 0; // Nombre de parties difficiles gagnées
            int temps_facile = 0; // Temps de résolution de la grille facile
            int temps_moyen = 0; // Temps de résolution de la grille moyen
            int temps_difficile = 0; // Temps de résolution de la grille difficile
     
    // TOUT LE CODE DE SAISIE DOIT ETRE MIS ICI
     
     
            // Création de variables pour les statistiques
     
            // EXEMPLE pour la  variable tmr_facile :
     
            int tmr_facile=0; // si aucune partie terminé on peut dire que le temps moyen est 0 - il faut que la valeur ait un sens dans les calculs qu'on fait après avec cette valeur (voir * plus bas)
     
            if ( partie_facile_terminee>0 ) { // on ne peut faire le calcul que si on a des partie facile terminées
                tmr_facile = temps_facile/partie_facile_terminee; // Temps moyen de résolution au niveau facile
     
            }
     
            int tmr_moyen=temps_moyen/partie_moyen_terminee; // Temps moyen de résolution au niveau moyen
            int tmr_difficile=temps_difficile/partie_difficile_terminee; // Temps moyen de résolution au niveau difficile
            int partie_perdue=((partie_facile)+(partie_moyen)+(partie_difficile))-((partie_facile_terminee)+(partie_moyen_terminee)+(partie_difficile_terminee));
            // Nombre total de partie perdues
            int partie_gagnee=((partie_facile_terminee)+(partie_moyen_terminee)+(partie_difficile_terminee));
            // Nombre total de parties gagnées
            int trm_global=((tmr_facile)+(tmr_moyen)+(tmr_difficile))/3; // Temps de résolution moyen global   (*) ICI on utilise tmr_facile : il faut que sa valeur si on a pas pu la calculer soit cohérente pour calculer trm_global...
            int partie_jouee=((partie_facile)+(partie_moyen)+(partie_difficile)); // Nombre total de parties jouées
            int taux_global=((100*(partie_facile_terminee)/(partie_facile))+(100*(partie_moyen_terminee)/(partie_moyen))+(100*(partie_difficile_terminee)/(partie_difficile))/3);
            // Pourcentage de réussite global
    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.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Effectivement, ce problème était mentionné dans le lien.
    Je ne comprend pas comment j'ai pu passé à côté car, en plus, c'est grâce à ce poste que je vous ai connu. Désolé.

    Je vais faire les modifications et vous dire ce qu'il en est.

    merci encore

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Allo,

    J'ai fait les modifications mais il m'affiche toujours la même erreur. Et je ne comprend pas pourquoi.

    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
     
    package tp2;
     
    import java.util.Scanner;
     
    public class Tp2 {
     
      static Scanner clavier = new Scanner(System.in); //clavier : nom générique pour tout le programme
     
        public static void main(String[] args) {
            // Création des variables pour les informations du joueur et des différents parties
            int niveau; 
            String nom = ""; 
            String prenom = ""; 
            String age = "";       
            int partie_facile = 0; // Nombre de parties faciles jouées
            int partie_moyen = 0; // Nombre de parties moyens jouées
            int partie_difficile = 0; //Nombre de parties difficiles jouées
            int partie_facile_terminee = 0; // Nombre de parties faciles gagnées
            int partie_moyen_terminee = 0; // Nombre de parties moyens gagnées
            int partie_difficile_terminee = 0; // Nombre de parties difficiles gagnées
            int temps_facile = 0; // Temps de résolution de la grille facile     
            int temps_moyen = 0; // Temps de résolution de la grille moyen
            int temps_difficile = 0; // Temps de résolution de la grille difficile
     
            // Création de variables pour les statistiques
            int tmr_facile=temps_facile/partie_facile_terminee; // Temps moyen de résolution au niveau facile
            if (partie_facile_terminee>0) {  // Vérification du diviseur car il n'est pas possible de diviser par 0
                tmr_facile = temps_facile/partie_facile_terminee;
            }
            int tmr_moyen=temps_moyen/partie_moyen_terminee; // Temps moyen de résolution au niveau moyen
            if (partie_moyen_terminee>0) { // Vérification du diviseur car il n'est pas possible de diviser par 0
                tmr_moyen = temps_moyen/partie_moyen_terminee;
            }
            int tmr_difficile=temps_difficile/partie_difficile_terminee; // Temps moyen de résolution au niveau difficile
            if (partie_difficile_terminee>0) { // Vérification du diviseur car il n'est pas possible de diviser par 0
                tmr_difficile = temps_difficile/partie_difficile_terminee;
            }
            int partie_perdue=((partie_facile)+(partie_moyen)+(partie_difficile))-((partie_facile_terminee)+(partie_moyen_terminee)+(partie_difficile_terminee));
            // Nombre total de partie perdues
            int partie_gagnee=((partie_facile_terminee)+(partie_moyen_terminee)+(partie_difficile_terminee));
            // Nombre total de parties gagnées
            int trm_global=((tmr_facile)+(tmr_moyen)+(tmr_difficile))/3; // Temps de résolution moyen global
            int partie_jouee=((partie_facile)+(partie_moyen)+(partie_difficile)); // Nombre total de parties jouées
            int taux_global=((100*(partie_facile_terminee)/(partie_facile))+(100*(partie_moyen_terminee)/(partie_moyen))+(100*(partie_difficile_terminee)/(partie_difficile))/3);
            // Pourcentage de réussite global
     
     
            System.out.println("-------Informations personnelles");
                // AFFICHAGE NOM
                int condition_nom = 0; // variable pour la condition sur la limite du nombre de caractére
                while (condition_nom == 0) { // tant que la condition n'est pas égale à 1
     
                   System.out.print("Nom : ");
                   nom = clavier.nextLine();
     
                    if (nom.length()<3) { // si le nom inséré a moins de 3 caractéres
                        System.out.println("Votre nom doit être compris entre 3 et 256 caractères");
     
                        condition_nom = 0; // = à 0 tant que la condition n,est pas remplie
                    }
     
                    else if (nom.length()>256) { // si la variable a plus de 256 caractére
                        System.out.println("Votre nom doit être compris entre 3 et 256 caractères");
     
                        condition_nom = 0; // = à 0 tant que la condition n,est pas remplie
                    }
                    else {
     
                        condition_nom = 1; // condition remplie et sortie de la boucle
     
                    }
     
                }
                // AFFICHAGE PRÉNOM (mêmes explication que pour l'affichage du nom)
                 int condition_prenom = 0;
                 while (condition_prenom == 0) {
     
                   System.out.print("Prénom : "); // Afficher : "prénom :"
                   prenom = clavier.nextLine();
     
                    if (prenom.length()<3) {
                        System.out.println("Votre prénom doit être compris entre 3 et 256 caractères"); // Si les caractères sont inférieurs à 3, aolrs afficher message
     
                        condition_prenom = 0;
                    }
     
                    else if (prenom.length()>256) {                   
                       System.out.println("Votre prenom doit être compris entre 3 et 256 caractères"); // Si les caractères sont supérieurs à 256, aolrs afficher message
     
                        condition_prenom = 0;
                    }
                    else {
     
                        condition_prenom = 1; // Condition réussite               
     
                    }              
     
                }
                    // AFFICHAGE DE L'ÂGE
                    int condition_age = 0; // création de la variable âge
                    while (condition_age == 0) { // tant que la condition n'est pas égale à 1
     
                        System.out.print("Âge : " + age);
                        age = clavier.nextLine();
     
                    if (Integer.parseInt(age) <= 10) { // Si le nombre est inférieur ou égale à 10 
                        System.out.println("Votre âge doit être compris entre 10 et 90 ans");
     
                        condition_age = 0; // = à 0 tant que la codition n'est pas remplie
     
     
                    }   
     
                    else if (Integer.parseInt(age) >=90) { // si le nombre est supérieur à 90
                        System.out.println("Votre âge doit être compris entre 10 et 90 ans");
     
                        condition_age = 0; // = à 0 tant que la codition n'est pas remplie
                    }
     
                    else {
                        condition_age = 1; // condition remplie et sortie de la boucle
     
                    }
                }
                    System.out.println("-------");
                    System.out.println("");// ligne créée pour un espace, pour faciliter la visibilité
                    System.out.println("");// ligne créée pour un espace, pour faciliter la visibilité
     
     
     
                // CHOIX DU NIVEAU DE DIFFICULTÉ
                System.out.println("Veuillez choisir un nineau de jeu");
                System.out.println("-------");
                System.out.println("Entrer 1 pour le niveau facile");
                System.out.println("Entrer 2 pour le niveau moyen");
                System.out.println("Entrer 3 pour le niveau difficile");
                System.out.println("-------");
     
                 niveau = clavier.nextInt();
     
            if(niveau == 1) { // Commande pour valider une partie gagnée ou perdue
                int choix1;
     
                    partie_facile++; // Incrémentation de la partie facile
     
                    System.out.println("Avez-vous gagné la partie?");
                    System.out.println("Sélectionner 4 pour gagnée");
                    System.out.println("Sélectionner 5 pour perdue");
                    choix1 = clavier.nextInt();
     
     
            switch (choix1) // Choix du "switch" pour créer une boucle
            {
     
     
                case 4 :
     
                    partie_facile_terminee++;
     
                    System.out.print("Temps de résolution de la grille : ");
                    temps_facile = clavier.nextInt();
     
                    System.out.print("La grille a été réussite en " + temps_facile + " minutes");
     
                    break;      
     
                case 5 :
     
                     System.out.println("Vous ferez mieux la prochaine fois");
     
                        break;
                    }
            }
             if(niveau == 2) { // Commande pour valider une partie gagnée ou perdue
                int choix2;
     
                    partie_moyen++; // Incrémentation de la partie moyen
     
                    System.out.println("Avez-vous gagné la partie?");
                    System.out.println("Sélectionner 4 pour gagnée");
                    System.out.println("Sélectionner 5 pour perdue");
                    choix2 = clavier.nextInt();
     
     
            switch (choix2) // Choix du "switch" pour créer une boucle
     
            {
     
                case 4 :
     
                    partie_moyen_terminee++; // Incrémentation de la partie difficile
     
                    System.out.print("Temps de résolution de la grille : ");
                    temps_moyen = clavier.nextInt();
     
                    System.out.print("La grille a été réussite en " + temps_moyen + " minutes");
     
                    break;      
     
                case 5 :
     
                     System.out.println("Vous ferez mieux la prochaine fois");
     
                        break;
                    }
                } 
     
     
     
            if(niveau == 3) { // Commande pour valider une partie gagnée ou perdue
                int choix3;
     
                    partie_difficile++; // Incrémentation de la partie difficile
     
                    System.out.println("Avez-vous gagné la partie?");
                    System.out.println("Sélectionner 4 pour gagnée");
                    System.out.println("Sélectionner 5 pour perdue");
                    choix3 = clavier.nextInt();
     
     
            switch (choix3) // Choix du "switch" pour créer une boucle
     
            {
     
                case 4 :
     
                    partie_difficile_terminee++; 
     
                    System.out.print("Temps de résolution de la grille : ");
                    temps_difficile = clavier.nextInt();
     
                    System.out.print("La grille a été réussite en " + temps_difficile + " minutes");
     
                    break;      
     
                case 5 :
     
                     System.out.println("Vous ferez mieux la prochaine fois");
     
                        break;
                    }           
            } 
     
     
     
            // AFFICHAGE STATISTIQUES
            System.out.println("****************************Statistiques Sudoku****************************");
            System.out.println("");
     
            System.out.println("-----Informations personnelles");
            System.out.println("Nom : "+ nom + ".");
            System.out.println("Prénom : "+ prenom + ".");
            System.out.println("Âge : " + age + "ans.");
     
            System.out.println(""); //ligne créée pour un espace, pour faciliter la visibilité
     
            System.out.println("----------------------------Statistiques détaillées----------------------------");
            System.out.println(""); //ligne créée pour un espace, pour faciliter la visibilité
     
            System.out.println("-----Statistiques niveau facile");
            System.out.println("Nombre de parties non terminées : "+ ((partie_facile)-(partie_facile_terminee)));
            System.out.println("Nombre de parties gagnées : " + (partie_facile)+ " "+"Temps de résolution moyem : " + (tmr_facile));
            System.out.println("Nombre total de partie jouées : " + (partie_facile));
            System.out.println("Taux de réussite du joueur : " + 100*(partie_facile_terminee)/(partie_facile) +"%");
            System.out.println("-----");
     
            System.out.println(""); //ligne créée pour un espace, pour faciliter la visibilité
     
            System.out.println("-----Statistiques niveau moyen");
            System.out.println("Nombre de parties non terminées : "+ ((partie_moyen)-(partie_moyen_terminee)));
            System.out.println("Nombre de parties gagnées : " + (partie_moyen)+ " "+"Temps de résolution moyem : " + (tmr_moyen));
            System.out.println("Nombre total de partie jouées : " + (partie_moyen));
            System.out.println("Taux de réussite du joueur : " + 100*(partie_moyen_terminee)/(partie_moyen) +"%");
            System.out.println("-----");
     
            System.out.println(""); //ligne créée pour un espace, pour faciliter la visibilité
     
            System.out.println("-----Statistiques niveau difficile");
            System.out.println("Nombre de parties non terminées : "+ ((partie_difficile)-(partie_difficile_terminee)));
            System.out.println("Nombre de parties gagnées : " + (partie_difficile)+ " "+"Temps de résolution moyem : " + (tmr_difficile));
            System.out.println("Nombre total de partie jouées : " + (partie_difficile));
            System.out.println("Taux de réussite du joueur : " + 100*(partie_difficile_terminee)/(partie_difficile) +"%");
            System.out.println("-----");
     
            System.out.println(""); //ligne créée pour un espace, pour faciliter la visibilité
     
            System.out.println("----------------------------Statiatiques globales----------------------------");
            System.out.println("Nombre de parties perdues : " + (partie_perdue));
            System.out.println("Nombre de parties gagnées : " + (partie_gagnee) + " " + "Temps de résolution moyen : " + (trm_global));
            System.out.println("Nomnre total de parties jouées : " + (partie_jouee));
            System.out.println("Taux de réussite du joueur : " + (taux_global) +"%");
     
        }
    }
    Merci



    P
    Fichiers attachés Fichiers attachés

  11. #11
    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
    Ton code (extrait) :
    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
     
     
    ...
           int partie_facile_terminee = 0; // Nombre de parties faciles gagnées
    ...
           int temps_facile = 0; // Temps de résolution de la grille facile
    ...        
     
           int temps_difficile = 0; // Temps de résolution de la grille difficile
     
            // Création de variables pour les statistiques
            int tmr_facile=temps_facile/partie_facile_terminee; // Temps moyen de résolution au niveau facile
            if (partie_facile_terminee>0) {  // Vérification du diviseur car il n'est pas possible de diviser par 0
                tmr_facile = temps_facile/partie_facile_terminee;
            }
     
    ...
    Ma suggestion (extrait) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int temps_difficile = 0; // Temps de résolution de la grille difficile
     
    // TOUT LE CODE DE SAISIE DOIT ETRE MIS ICI
     
     
    // Création de variables pour les statistiques
    int tmr_facile=temps_facile/partie_facile_terminee; // Temps moyen de résolution au niveau facile
    Je ne sais pas : j'ai dû mal m'exprimer ? "TOUT LE CODE DE SAISIE DOIT ETRE MIS ICI" ça voulait dire que TOUT LE CODE DE SAISIE DEVAIT ETRE MIS LA ! C'est-à-dire "pas après", "pas à la fin", "pas après la ligne qui plante parce qu'on y divise par 0".

    En plus, comme toutes les lignes de ton code seront exécutées successivement jusqu'à ce qu'il y en ait une qui plante, dans le code suivant, ce qu'il y a avant le if est exécuté et comme c'est la même chose qu'il y a dans le if, en cas de problème, ça plante, et si après correction de ton code (c'est-à-dire faire la saisie AVANT de faire les calculs !!!), ça plantera ou ça fera le calcul 2 fois... par ce que la condition du if sera vraie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Création de variables pour les statistiques
    int tmr_facile=temps_facile/partie_facile_terminee; // Temps moyen de résolution au niveau facile
    if (partie_facile_terminee>0) {  // Vérification du diviseur car il n'est pas possible de diviser par 0
          tmr_facile = temps_facile/partie_facile_terminee;
    }
    Comment veux-tu que ça ne continue pas à dire que tu fais une division par zéro si tu continues à faire une division par zéro.

    Execute le code mentalement, ou sur papier, tu comprendras ce que ça fait : c'est pas difficile ici (après quand ce sera plus complexe, tu utiliseras un débogueur).
    1. ça exécute int partie_facile_terminee = 0; // Nombre de parties faciles gagnéesça créé la variable partie_facile_terminee et ça met 0 dedans. Donc partie_facile_terminee vaut 0.
    2. ça exécute des lignes qui ne modifie pas partie_facile_terminee, donc on s'en moque
    3. ça exécute int temps_facile = 0; // Temps de résolution de la grille facileça créé la variable temps_facile et ça met 0 dedans. Donc temps_facile vaut 0, et partie_facile_terminee vaut encore et toujours 0.
    4. ça exécute des lignes qui ne modifie pas partie_facile_terminee, donc on s'en moque
    5. ça exécute int tmr_facile=temps_facile/partie_facile_terminee; // Temps moyen de résolution au niveau facileça créé la variable tmr_facile et ça calcule l'expression qu'il y a derrière le = pour savoir quoi mettre dans la variable. Comme l'expression est temps_facile/partie_facile_terminee, et que, ni temps_facile, ni partie_facile_terminee n'ont été changés jusque là, elles valent toujours 0, ça fait 0 divisé par 0, donc ça plante avec l'exception division par 0



    Donc, je répète :

    Tu mets toute ta boucle de saisie entre les initialisations et les calculs. Les initialisations sont les lignes du genre int nomdevariable = 0. Et les calculs qui plantent sont les lignes du genre int truc = machin / variable a zéroEt tu modifies chaque calcul de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // EXEMPLE pour la  variable tmr_facile :
     
    int tmr_facile=0; // si aucune partie terminé on peut dire que le temps moyen est 0 - il faut que la valeur ait un sens dans les calculs qu'on fait après avec cette valeur (voir * plus bas)
     
    if ( partie_facile_terminee>0 ) { // on ne peut faire le calcul que si on a des partie facile terminées
            tmr_facile = temps_facile/partie_facile_terminee; // Temps moyen de résolution au niveau facile
    }
    A noter que la ligne avant le if n'a rien à voir avec celle dans le if !


    PS Par curiosité, il vient d'où cet exercice ? Et c'est censé être pour quel niveau ?
    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.

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    En fait, j'étudie à la Téluq qui est la téléuniversité de l'université du Québec à Montréal.

    C'est un cours fait à la maison via Internet et téléphone.

    Je dois dire que j'ai suivi plusieurs cours avec eux qui étaient très bien, mais celui-ci est pas mal difficile.

    Il y à 24 cours et cet exercice est le 9iéme. Pour ma part, je ne trouve pas qu'on a le niveau par rapport aux cours. C'est pour cela que je fais appel à vous.

    Sinon je fais le modifications et je te tiens au courant.

    merci

Discussions similaires

  1. Mon premier programme java ?
    Par WhiteTigerZ dans le forum Général Java
    Réponses: 7
    Dernier message: 05/07/2010, 10h35
  2. Mon premier programme en Java
    Par eilijah dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 08/12/2008, 14h00
  3. Premier programme en Java
    Par mlaiti dans le forum Général Java
    Réponses: 12
    Dernier message: 26/02/2008, 13h46
  4. [JDOM] Mon premier programme java-xml
    Par adilo dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 12/07/2006, 13h12
  5. [Language] Aide sur mon premier programme Java?
    Par hash2zo dans le forum Langage
    Réponses: 15
    Dernier message: 27/09/2005, 19h26

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