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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    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 : 55
    Localisation : France, Paris (Île de France)

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

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

    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 membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    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 : 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
    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 membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    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 : 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
    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.

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