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 :

Erreur de mon programme


Sujet :

avec Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2017
    Messages : 2
    Par défaut Erreur de mon programme
    bonjour


    Problématique
    Vous êtes mandaté par la directrice de l’école Saint-Pruneau à concevoir un programme java nommé tp2.java. Ce programme permettra de saisir des informations au clavier, faire un certain traitement sur ces données et afficher les résultats selon un certain formatage.

    Saisie et validation des informations
    Le programme permet 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.
    Les résultats devront être affichés selon le format présenté ci-après.



    ****************************Statistiques Sudoku*****************************

    -------Informations personnelles
    Nom: Lamarche
    Prénom: Benjamin
    Âge: 23 ans
    -------



    ---------------------------Statistiques détaillées--------------------------

    ------Statistiques niveau facile
    Nombre de parties non terminées: 1
    Nombre de parties gagnées:10. Temps de résolution moyen: 13 minutes
    Nombre total de parties jouées: 11
    Taux de réussite du joueur : 90%
    -------

    ------Statistiques niveau moyen
    Nombre de parties non terminées: 3
    Nombre de parties gagnées: 6. Temps de résolution moyen: 28 minutes
    Nombre total de parties jouées: 9
    Taux de réussite du joueur : 66%
    -------

    ------Statistiques niveau difficile
    Nombre de parties non terminées: 9
    Nombre de parties gagnées: 9. Temps de résolution moyen: 72 minutes
    Nombre total de parties jouées: 18
    Taux de réussite du joueur : 50%
    -------

    ---------------------------Statistiques globales----------------------------
    Nombre de parties perdues: 13
    Nombre de parties gagnèes:25. Temps de résolution moyen: 37 minutes
    Nombre total de parties jouées: 38
    Taux de réussite du joueur : 65%



    Directives
    Vous devez remettre les fichiers .java et .class.
    Votre code doit être lisible et commenté (commentaires javadoc et commentaires dans le code au besoin) et respecter les normes de style.
    Évaluation


    Saisie et validation des données 45%
    Calcul des statistiques 45%
    Lisibilité du code et utilisation des commentaires 10%


    il faut que je trouve la solution de mon programme , car je ne trouve pas la solution au fait que lorsque je choisis débutant ou intermédiaire ou expert et qu'il me demande en combien de temps la résolution en minutes a la fin sa me marque 0 et en plus il indique toujours +1 au niveau de difficulté choisis



    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
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    import java.util.Scanner;
     
     
     
    public class Test{
     
     
     
     
    static Scanner sudoku = new Scanner (System.in);
     
     
     
     
    public static void main(String[] args){
     
     
     
     
    //initalisation variables
     
         int Sudoku = 0;// niveau de jeu
     
     
     
         int nbrpartie_faciles = 1;// nombre de parties faciles jouees
     
     
     
         int nbrpartie_moyennes = 1;// nombre de parties moyennes jouees
     
     
     
         int nbrpartie_dificiles = 1;// nombre de parties dificiles jouees
     
     
     
         int nbrpartiefaciles_terminees = 1;// nombre de parties faciles gagnees
     
     
     
         int nbrpartiemoyennes_terminees = 1;// nombre de parties moyennes gagnees
     
     
     
         int nbrpartiedificiles_terminees = 1;// nombre de parties dificiles gagnees
     
     
     
         int tauxreussite_facile = nbrpartiefaciles_terminees/nbrpartie_faciles*100;// taux de reussite des parties de niveau facile
     
     
     
         int tauxreussite_moyen = nbrpartiemoyennes_terminees/nbrpartie_moyennes*100;// taux de reussite des parties de niveau moyen
     
     
     
         int tauxreussite_dificile = nbrpartiedificiles_terminees/nbrpartie_dificiles*100;// taux de reussite des parties de niveau dificile
     
     
     
         int tempsreso_facile = 0;// temps de resolution d'une partie de niveau facile
     
     
     
         int tempsreso_moyen = 0;// temps de resolution d'une partie de niveau moyen
     
     
     
         int tempsreso_dificile = 0;// temps de resolution d'une partie de niveau dificile
     
     
     
         int tempsmoyreso_facile = tempsreso_facile/nbrpartiefaciles_terminees;//temps de resolution moyen d'une partie de niveau facile
     
     
     
         int tempsmoyreso_moyen = tempsreso_moyen/nbrpartiemoyennes_terminees;// temps de resolution moyen d'une partie de niveau moyen
     
     
     
         int tempsmoyreso_dificile = tempsreso_dificile/nbrpartiedificiles_terminees;// temps de resolution moyen d'une partie de niveau dificile
     
     
     
         int nbrpartieperdue = (nbrpartie_faciles+nbrpartie_moyennes+nbrpartie_dificiles)-(nbrpartiefaciles_terminees+nbrpartiemoyennes_terminees+nbrpartiedificiles_terminees);// nombre de parties perdues
     
     
     
         int nbrpartiegagnee = nbrpartiefaciles_terminees+nbrpartiemoyennes_terminees+nbrpartiedificiles_terminees;// nombre de parties gagnees
     
     
     
         int nbrpartiejouee = nbrpartie_faciles+nbrpartie_moyennes+nbrpartie_dificiles;// nombre de parties jouees
     
     
     
         int tempsresomoy = (tempsmoyreso_facile+tempsmoyreso_moyen+tempsmoyreso_dificile)/(nbrpartiefaciles_terminees+nbrpartiemoyennes_terminees+nbrpartiedificiles_terminees);// temps de resolution moyen
     
     
     
         String afficheur1 = null;
     
         String afficheur2 = null;
     
         String afficheur3 = null;
     
         //affichage message de bienvenue et enregistrement du nom, prenom, age
     
        System.out.println ("Bonjour, veuillez suivre les informations qui s'afficheront sur votre ecran");//affichage message de bienvenue
     
     
     
        int condition_nom = 0; //initialisation variables pour la condition sur la limite de caractères
     
            while (condition_nom == 0){ //tant que la condition n'est pas egale à 1
     
        System.out.print(" Entrez votre nom : ");
     
         afficheur1 = sudoku.nextLine();//extraction du contenu de la dernière ligne tapee par l'utilisateur
     
    		if(afficheur1.length()<3){ // si le nom comporte moin de 3 caractères
     
        System.out.println("Vous devez inserez un nom compris entre 3 et 256 caractères");
     
        condition_nom = 0; // variable à zero tant que la condition n'est pas remplie
     
                                 }
     
            else if (afficheur1.length()>256){ // si le nom comporte plus de 256 caractères
     
        System.out.println("Vous devez inserez un nom compris entre 3 et 256 caractères");
     
        condition_nom = 0; // variable à zero tant que la condition n'est pas remplie
     
                 }
     
    		else {
     
        condition_nom = 1;
    			} // quand la condition est remplie passage à 1 et sortie de la boucle
     
                }
     
     
     
        int condition_nom1 = 0;//initialisation variables pour la condition sur la limite de caractères
     
            while (condition_nom1 == 0){ //tant que la condition n'est pas egale à 1
     
    	System.out.print(" Entrez votre Prenom : ");
     
        afficheur2 = sudoku.nextLine(); //extraction du contenu de la dernière ligne tapee par l'utilisateur
     
            if(afficheur2.length()<3){ // si le prenom comporte moin de 3 caractères
     
    	System.out.println("Vous devez inserez un nom compris entre 3 et 256 caractères");
     
    	condition_nom1 = 0; // variable à zero tant que la condition n'est pas remplie
    			}
     
     
     
            else if (afficheur2.length()>256){ // si le prenom comporte plus de 256 caractères
    	System.out.println("Vous devez inserez un nom compris entre 3 et 256 caractères");
    	condition_nom1 = 0; // variable à zero tant que la condition n'est pas remplie
    			}
     
     
     
             else {
    	condition_nom1 = 1;
    			} // quand la condition est remplie passage à 1 et sortie de la boucle
    			}
     
    	int condition_age = 0; // initalisation variable
     
    		while (condition_age == 0){ //tant que la condition n'est pas egale à 1
     
    	System.out.print(" Entrez votre âge :");
     
    	afficheur3 = sudoku.nextLine();//extraction du contenu de la dernière ligne tapee par l'utilisateur
     
     
    		if(Integer.parseInt(afficheur3) < 10){ // si le nombre est inferieur à 10
     
    	System.out.println("Vous devez inserez un nombre compris entre 10 et 90");
     
    	condition_age = 0; // variable à zero tant que la condition n'est pas remplie
    			}
     
     
     
            else if (Integer.parseInt(afficheur3) > 90){ // si le nombre est superieur à 90
     
        System.out.println("Vous devez inserez un nom compris entre 10 et 90");
     
    	condition_age = 0; // variable à zero tant que la condition n'est pas remplie
     
                }
     
    		else {
     
    	condition_age = 1;
     
    			} // quand la condition est remplie passage à 1 et sortie de la boucle
     
    			}
     
    	System.out.println("--------Informations personnelles :");
     
        System.out.println("----------------------------------:");
     
        System.out.println ("NOM : " + afficheur1) ;
     
    	System.out.println ("Prenom : " + afficheur2) ;
     
    	System.out.println ("âge : " + afficheur3 + " ans") ;
     
    	System.out.println("----------------------------------:");
     
     
    	String reponse="O";
     
    		while (reponse.toLowerCase().equals("o"))// quand la reponse egale à O alors lancement de la boucle
    		{ System.out.println ();
     
     
        System.out.println("Informations sur la difficulte du Jeu:");
     
    	System.out.println("----------------------------------:");
     
        System.out.println("Veuillez choisir un niveau de jeu:");
     
        System.out.println (" -----------------------------------");
     
        System.out.println (" Entrez 1 pour Sudoku Debutant");
     
        System.out.println (" Entrez 2 pour Sudoku Intermediaire");
     
        System.out.println (" Entrez 3 pour Sudoku Expert");
     
        System.out.println (" -----------------------------------");
     
     
    	Sudoku = sudoku.nextInt();// extraction de la reponse
     
     
            if(Sudoku ==1){// si le niveau choisi est egale à 1 alors lancement de la boucle corespondante
     
        int choix1 = 0;
     
        nbrpartie_faciles++; // incrementaion du nombre parties faciles
     
        System.out.println("Avez-vous gagne la partie?");
     
        System.out.print(" Tapez 4 pour oui ");
     
        System.out.print(" Tapez 5 pour non ");
     
        choix1 = sudoku.nextInt(); //extraction du contenu de la dernière ligne tapee par l'utilisateur
     
     
     
        sudoku.nextLine();
     
    		switch (choix1)
     
                {
     
    case 4 :// si le joueur a gagne la partie alors
     
        nbrpartiefaciles_terminees++;// incrementation du nombre de parties faciles gagnees
     
        tauxreussite_facile = nbrpartiefaciles_terminees/nbrpartie_faciles*100;// calcul du taux de reussite
     
        System.out.println("En combien de temps vous avez remplie la grille?");
     
        System.out.println("Donnez la reponse en minutes");
     
        String afficheur5 = sudoku.nextLine();//extraction du contenu de la dernière ligne tapee par l'utilisateur
     
        tempsreso_facile = nbrpartiefaciles_terminees + tempsreso_facile + Integer.parseInt(afficheur5) / (nbrpartiefaciles_terminees); //calcul du temps de resolution
    		break;
    case 5 :
    	tauxreussite_facile = nbrpartiefaciles_terminees-1/nbrpartie_faciles*100;// calcul du taux de reussite en ajoutant un echec
     
    		default :
    		break;
     
                }
     
                }
     
    		if(Sudoku ==2){// si le niveau choisi est egale à 2 alors lancement de la boucle corespondante
     
    	int choix2 = 0;
     
    	nbrpartie_moyennes++;
     
    	System.out.println("Avez-vous gagne la partie?");
     
    	System.out.print(" Tapez 4 pour oui ");
     
    	System.out.print(" Tapez 5 pour non ");
     
    	choix2 = sudoku.nextInt(); //extraction du contenu de la dernière ligne tapee par l'utilisateur
     
    	sudoku.nextLine();
     
    		switch (choix2)
    		{
     
    case 4:// si le joueur a gagne la partie alors
     
    	nbrpartiemoyennes_terminees++;// incrementation du nombre de parties moyennes gagnees
     
    	tauxreussite_moyen = nbrpartiemoyennes_terminees/nbrpartie_moyennes*100;// calcul du taux de reussite
     
    	System.out.println("En combien de temps vous avez remplie la grille?");
     
    	System.out.println("Donnez la reponse en minutes");
     
    	String afficheur7 = sudoku.nextLine();  //extraction du contenu de la dernière ligne tapee par l'utilisateur
     
    	tempsreso_moyen = (nbrpartiemoyennes_terminees * tempsreso_moyen) + Integer.parseInt(afficheur7) / ( nbrpartiemoyennes_terminees);//calcul du temps de resolution
     
    		break;
     
    case 5:
     
    	tauxreussite_moyen = nbrpartiemoyennes_terminees-1/nbrpartie_moyennes*100;// calcul du taux de reussite en ajoutant un echec
    		default :
    		break;
    		}
    		}
     
    		if(Sudoku ==3){// si le niveau choisi est egale à 3 alors lancement de la boucle corespondante
     
    	int choix3 = 0;
     
    	nbrpartie_dificiles++;// incrementaion du nombre parties dificiles
     
    	System.out.println("Avez-vous gagne la partie?");
     
    	System.out.print(" Tapez 4 pour oui ");
     
    	System.out.print(" Tapez 5 pour non ");
     
    	choix3 = sudoku.nextInt();//extraction du contenu de la dernière ligne tapee par l'utilisateur
     
    	sudoku.nextLine();
     
    	switch (choix3){
     
    case 4:// si le joueur a gagne la partie alors
     
    	nbrpartiedificiles_terminees++;// incrementation du nombre de parties dificiles gagnees
     
    	tauxreussite_dificile = nbrpartiedificiles_terminees/nbrpartie_dificiles*100;// calcul du taux de reussite
     
    	System.out.println("En combien de temps vous avez remplie la grille?");
     
    	System.out.println("Donnez la reponse en minutes");
     
    	String afficheur9 = sudoku.nextLine();//extraction du contenu de la dernière ligne tapee par l'utilisateur
     
    	tempsreso_dificile= (nbrpartiedificiles_terminees * tempsreso_dificile) + Integer.parseInt(afficheur9) / ( nbrpartiedificiles_terminees);//calcul du temps de resolution
    		break;
     
    case 5 :
     
    	tauxreussite_dificile = nbrpartiedificiles_terminees-1/nbrpartie_dificiles*100;//sinon calcul du taux de reussite en ajoutant un echec
    		default :
    		break;
     
    			}
    			}
     
    	System.out.println("Voulez-vous inserer d'autres parties? (O/N)");
     
    	reponse = sudoku.nextLine();  // extraction dernière ligne
     
    			}
     
    	sudoku.close();   // fermeture du scanner
     
     
     
    // affichage des resultats et des variables
     
     
     
         System.out.println("*****************************Statistiques Sudoku*****************************");
     
     
     
        System.out.println("-------Informations personnelles");
     
        System.out.println("Nom:"+" "+afficheur1+".");
     
        System.out.println("Prenom:"+""+afficheur2+".");
     
        System.out.println("Âge:"+""+afficheur3+"ans.");
     
     
     
                System.out.println("---------------------------Statistiques detaillees--------------------------");
     
     
     
        System.out.println("------Statistiques niveau facile ");
     
        System.out.println("Nombre de parties non terminees: "+(nbrpartie_faciles-nbrpartiefaciles_terminees));
     
        System.out.print("Nombre de parties gagnees: "+nbrpartiefaciles_terminees + " " );
     
        System.out.println("Temps de resolution moyen:"+tempsmoyreso_facile);
     
        System.out.println("Nombre total de parties jouees: "+nbrpartie_faciles);
     
        System.out.println("Taux de reussite du joueur : "+tauxreussite_facile);
     
    	System.out.println("--------");
     
     
    	System.out.println("------Statistiques niveau moyen ");
     
        System.out.println("Nombre de parties non terminees: "+(nbrpartie_moyennes-nbrpartiemoyennes_terminees));
     
        System.out.println("Nombre de parties gagnees: "+(nbrpartiemoyennes_terminees+" "+"Temps de resolution moyen:" + " " +tempsmoyreso_moyen));
     
        System.out.println("Nombre total de parties jouees: "+nbrpartie_moyennes);
     
        System.out.println("Taux de reussite du joueur : "+tauxreussite_moyen);
     
        System.out.println("--------");
     
     
    	System.out.println("------Statistiques niveau dificile ");
     
        System.out.println("Nombre de parties non terminees: "+(nbrpartie_dificiles-nbrpartiedificiles_terminees));
     
        System.out.println("Nombre de parties gagnees: "+(nbrpartiedificiles_terminees+" "+"Temps de resolution moyen: "+tempsmoyreso_dificile));
     
        System.out.println("Nombre total de parties jouees: "+nbrpartie_dificiles);
     
        System.out.println("Taux de reussite du joueur : "+tauxreussite_dificile);
     
    	System.out.println("--------");
     
     
     
    	System.out.println("---------------------------Statistiques globales--------------------------");
     
     
    	System.out.println("Nombre de parties perdues: "+nbrpartieperdue);
     
        System.out.println("Nombre de parties gagnees: "+(nbrpartiegagnee+" "+"Temps de resolution moyen: "+tempsresomoy));
     
        System.out.println("Nombre total de parties jouees: "+nbrpartiejouee);
     
        System.out.println("Taux de reussite du joueur : "+((nbrpartiegagnee)/(nbrpartiejouee)*100));
     
    		}
    		}

  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
    Citation Envoyé par pierre2612 Voir le message
    [...]en combien de temps la résolution en minutes a la fin sa me marque 0
    Citation Envoyé par pierre2612 Voir le message
    et en plus il indique toujours +1 au niveau de difficulté choisis
    Les instructions qui affichent ces 2 informations, pour le niveau facile, sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        System.out.print("Nombre de parties gagnees: "+nbrpartiefaciles_terminees + " " );
     
        System.out.println("Temps de resolution moyen:"+tempsmoyreso_facile);
    Donc le nombre de partie terminées, c'est la variable nbrpartiefaciles_terminees. Regardons donc comment cette variable est déclarée, initialisée puis calculée.

    Déclaration : int nbrpartiefaciles_terminees = 1;// nombre de parties faciles gagnees.

    Calcul : à chaque fois qu'on dit qu'on a gagné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    case 4 :// si le joueur a gagne la partie alors
     
        nbrpartiefaciles_terminees++;// incrementation du nombre de parties faciles gagnees
    Soit on l'incrémente de 1.

    Résumé : valeur initiale = 1, puis on fait +1 à chaque partie gagnée. Donc pas étonnant, que si aucune partie n'est gagné le résultat final est 1 et pas 0 (puisqu'au début ça vaut 1), puis pour n parties gagnées on a forcément n+1.
    Il faut initialiser cette variable à 0.

    Alors évidemment, juste après tu fais des calculs du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        int tauxreussite_facile = nbrpartiefaciles_terminees/nbrpartie_faciles*100;// taux de reussite des parties de niveau facile
    Donc si nbrpartiefaciles vaut 0, ça fait une division par 0, et donc ça plante. Mais pourquoi calculer ici ? C'est après la saisie qu'on doit faire les calculs, pas avant, quand les informations sont forcément non saisies, non sans intérêt pour un calcul qui doit être fait sur des valeurs saisies.

    Pour l'autre problème, la variable tempsmoyreso_facile, regardons également sa déclaration, son initialisation et les calculs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int tempsmoyreso_facile = tempsreso_facile/nbrpartiefaciles_terminees;//temps de resolution moyen d'une partie de niveau facile
    Tu initialise la variable une seule fois, et il n'y a aucun autre calcul. Donc la variable vaut ce qu'elle vaut là, dans sa déclaration, soit 0 divisé par 1. Donc 0.

    Comme je le disais, il faut faire ce calcul lorsque tempsreso_facile et nbrpartiefaciles_terminees ont été saisis.
    Cette instruction ne correspond pas à l'énoncé d'une formule de calcul général qui dirait : je défini tempsmoyreso_facile comme la division entre la valeur de tempsreso_facile par la valeur de nbrpartiefaciles_terminees. Elle dit : au moment où cette ligne est exécutée, on met dans tempsmoyreso_facile le résulat de la division de la valeur de tempsreso_facile par la valeur de nbrpartiefaciles_terminees au moment où cette ligne est exécutée.

    Par ailleurs, en Java, un int divisé par un int donne toujours un int (la partie entière de la division). En particulier, un int divisé par un int plus grand donne toujours 0. Il y a de fortes chances que tempreso_facile soit plus grand que nbrpartiefaciles_terminees, mais si tu veux une moyenne décimale, il te faudra :
    1. déclarer tempsmoyreso_facile avec un type double ou float
    2. t'arranger pour que l'un des deux nombres (dividende ou diviseur) soit du même type.

      Par exemple pour un double
      1. soit par cast : tempsmoyreso_facile = tempreso_facile / (double)nbrpartiefaciles_terminees par exemple
      2. soit par produit avec un double : tempsmoyreso_facile = tempreso_facile * 1.0 / nbrpartiefaciles_terminees ou tempsmoyreso_facile = tempreso_facile * 1d / nbrpartiefaciles_terminees 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.

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2017
    Messages : 2
    Par défaut aide
    Est-ce que tu peux me donner un coup de main , car jai beaucoup de difficultés.

  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 : 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
    Si tu as des questions particulières, n'hésite pas à les poser.

    Cela dit, j'ai déjà eu l'occasion d'aider quelqu'un sur le même sujet, et vu que ça avait été plutôt laborieux, je n'ai pas trop envie de répéter ce que j'avais répété alors. Surtout que ton collègue avait fait exactement la même erreur que toi (à se demander si la formation n'est pas en cause...ne serait-ce pas la Teluq par hasard ?). Donc matte un peu ce qui avait été écrit à l'époque, ça te donnera peut-être des idées, répondra sûrement à certaines questions que tu te poses, et m'évitera d'avoir à reprendre les problèmes de base vus à l'époque, sur la notion d'exécution séquentielle en particulier.
    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
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Bonjour, j'en profite, puisque ces questions ont tendance à se multiplier, pour vous rappeler que nous ne sommes pas là pour faire les exercices à votre place mais pour vous guider et vous permettre de vous améliorer :

    Citation Envoyé par http://club.developpez.com/regles/#LIV-N
    IV-N. Lycéen, collégien, étudiant (bref un apprenti développeur)
    Vous êtes le bienvenu ici pour vous former.

    Vous former, cela veut dire lire les cours et tutoriels : http://www.developpez.com/cours/ et éventuellement poser vos questions en français correct si vous avez besoin d'aide, dans un seul forum, et dans le respect des règles du forum.

    Nous ne sommes pas là pour faire vos exercices.
    Entendez par là que nous serons bien évidemment tout à fait d'accord pour vous aider à résoudre votre problème, pour autant que vous fassiez vous-même des efforts.
    Postez votre question, mais proposez également un début de solution, un bout de code, etc. En aucun cas, nous ne ferons le travail à votre place.

    Merci de votre compréhension.

    P.-S. Merci aux étudiants qui participent à developpez.com en écrivant des tutoriels ou en répondant aux messages des autres sur des sujets qu'ils maîtrisent bien.
    Bref nous (ceux qui répondent aux questions) sommes là pour vous (vous qui rencontrez des problèmes et qui posez des questions) guider, vous orienter dans des pistes de solution, vous permettre d’acquérir de nouveaux savoirs, de bonnes pratiques de développement et d'autosuffisance, notamment en vous expliquant quelles sont les solutions courantes utilisées pour un problème commun, des orientations possibles pour un problème plus complexe ou rarement posé (et dont nous n'avons pas nous-même la solution) ou comment organiser votre projet (extraire le cœur atomique du problème hors du gros projet et le tester à part dans un projet annexe léger de test) ou trouver de l'info par vous-même (sites de références, cours, etc.).

    Et même si il nous arrive parfois de poster la solution intégrale d'un problème, par exemple quand ce dernier est intéressant ou stimulant ou tombe pile poil dans notre domaine d'expertise, de manière générale nous ne sommes pas là pour faire vos exercices a votre place, d'autant plus que nous faisons cela sur notre temps libre, de manière volontaire, non rémunérée et qu'à la fin de vos études / votre formation, c'est vous qui serez pénalisés ; car vous ne saurez toujours pas résoudre le problème par vous-même (= gênant si un jour vous devez à nouveau revenir sur quelque chose de similaire dans le cadre d'un boulot payé).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. Aide java script diver questions
    Par Argorate dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 05/08/2006, 03h32
  2. aide java sous linux
    Par blackcrow1981 dans le forum Langage
    Réponses: 2
    Dernier message: 10/07/2006, 17h41

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