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

C# Discussion :

Problème de programme


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2022
    Messages : 5
    Par défaut Problème de programme
    Salut tout le monde, je suis un étudiant en résautique et j'ai un peu de misère pour mon premier programme, tout allait bien quand je le roulais mais je ne voyais aucun de mes compteurs afficher la moyenne et en changeant un truc je vois les moyennes s'afficher mais pas tout à fait correct mais bon, j'ai aussi perdu une syntaxe dans mon désespoir 🙃 . Merci

  2. #2
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Citation Envoyé par Soulkeeper Voir le message
    Merci
    Ben écoute de rien 🤔, mais c'est quoi le problème ? C'est quoi la question ? Du code serait le bienvenu.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2022
    Messages : 5
    Par défaut Salut PixelJuice, voici le code
    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
                //Variable
                int nbr_acc, cpt, an_nais, an_cour, age_moy, somme_age;
                string str_rep;
                char sexe, rep;
                float cpt_hom_age, cpt_fem, cpt_age, pourcent_hp;
     
                cpt_fem = cpt_age = cpt_hom_age = pourcent_hp = cpt = 0;
                rep = '9';
                somme_age = 0;
                an_cour = DateTime.Now.Year;
     
                do// Boucle pour recommencer
                {
                    do
                    {
                        Console.Write("Entrez le nombre d'accident survenue pendant le mois de mai:");
                        str_rep = Console.ReadLine();
                    } while (int.TryParse(str_rep, out nbr_acc) == false || nbr_acc < 0);
     
                    //Pour chaque accident
                    cpt = 1;
                    while (cpt <= nbr_acc)
     
                    {
                        Console.WriteLine("Saisir les informations sur l'accident" + cpt);
                        cpt++;
     
                        do
                        {
                            Console.Write("Entrez l'année de naissance du conducteur impliqué(e):");
                            str_rep = Console.ReadLine();
                        } while (int.TryParse(str_rep, out an_nais) == false || an_nais < DateTime.Now.Year - 100 || an_nais > DateTime.Now.Year - 16);
     
     
                        somme_age = 1;
                        while (somme_age >= nbr_acc) ;
     
     
                        ;
     
                        do
                        {
                            Console.Write("Entrez le sexe du premier conducteur impliqué(e), H/F:");
                            str_rep = Console.ReadLine().ToUpper();
                        } while (char.TryParse(str_rep, out sexe) == false || sexe != 'H' && sexe != 'F');
     
                        if (sexe == 'F')
                            cpt_fem++;
                        else if (sexe == 'H' && 'H' >= 1997 && 'H' <= 2004)
     
     
     
                            do
                            {
                                Console.Write("Entrer le code d'enregistrement du premier conducteur: (1/9)");
                                str_rep = Console.ReadLine();
                            } while (Char.TryParse(str_rep, out rep) && rep != '1' && rep != '9');
     
                        if (rep == '9')
                            pourcent_hp++;
                        else
     
     
                        Console.ReadLine();
                    }
     
     
                    do
                    {
                        Console.Write("Voulez-vous recommencer (O/N)?:");
                        str_rep = Console.ReadLine().ToUpper();
                    } while (char.TryParse(str_rep, out rep) == false || rep != 'O' && rep != 'N');
     
                } while (rep == 'O');
     
     
                age_moy = somme_age / cpt;
                Console.WriteLine("La moyenne d'age des conducteurs impliqué(es) est:", age_moy);
                Console.ReadLine();
     
                cpt_hom_age = cpt_hom_age / cpt;
                Console.WriteLine("Le pourcentage d'homme entre 18 et 25 ans est: ", cpt_hom_age);
                Console.ReadLine();
     
                cpt_fem = cpt_fem / cpt;
                Console.WriteLine("Le pourcentage de femme est:" + cpt_fem);
                Console.ReadLine();
     
                pourcent_hp = pourcent_hp / cpt;
                Console.WriteLine("Le pourcentage de conducteur hors- province est: " +pourcent_hp);
                Console.ReadLine();

  4. #4
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Bonjour,

    Alors il y a plusieurs problèmes, mais on va commencer par ce qui te préoccupait en premier.

    Les moyennes ne s'affichent pas car tu utilises pas Console.WriteLine comme il faut, il faut préciser ou tu affiches le paramètre passé en second, comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Console.WriteLine("La moyenne d'age des conducteurs impliqué(es) est: {0}", age_moy);
    Ensuite, cette boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (somme_age >= nbr_acc) ;
    Peut-être un reste d'un ancien code ou je sais pas mais il faut faire attention quand même.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if (sexe == 'H' && 'H' >= 1997 && 'H' <= 2004)
    Je ne comprends pas cette condition, mais à la vue des valeurs, j'imagine qu'il serait plus judicieux de comparer l'année entrée précédemment plutôt que la lettre H ?




    Je pense qu'il y a d'autres petits problèmes mais pour l'instant, tu peux déjà commencer par ça.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Août 2022
    Messages : 5
    Par défaut Problème de débutant
    Salut PixelJuice, j'ai essayé ta solution et j'arrive avec ça

    Entrez le nombre d'accident survenue pendant le mois de mai:3
    Saisir les informations sur l'accident1
    Entrez l'année de naissance du conducteur impliqué(e):2000
    Entrez le sexe du premier conducteur impliqué(e), H/F:h
    Entrer le code d'enregistrement du premier conducteur: (1/9)9
    Saisir les informations sur l'accident2
    Entrez l'année de naissance du conducteur impliqué(e):1997
    Entrez le sexe du premier conducteur impliqué(e), H/F:h
    Entrer le code d'enregistrement du premier conducteur: (1/9)1
    Saisir les informations sur l'accident3
    Entrez l'année de naissance du conducteur impliqué(e):1986
    Entrez le sexe du premier conducteur impliqué(e), H/F:f
    Entrer le code d'enregistrement du premier conducteur: (1/9)1

    Voulez-vous recommencer (O/N)?:n
    La moyenne d'age des conducteurs impliqué(es) est: 0

    Le pourcentage d'homme entre 18 et 25 ans est:

    Le pourcentage de femme est: 0,25

    Le pourcentage de conducteur hors- province est: 0,25

    la ligne de code " else if (sexe == 'H' && sexe >= 1997 && sexe <= 2004) " c'est parce que dans mon TP, je dois calculer et afficher les 4statistiques suivantes:

    L'âge moyen de tous les conducteurs impliqués;
    Le pourcentage de femmes;
    Le pourcentage d'hommes entre 18 et 25 ans;
    Le pourcentage de tous les conducteurs non enregistrés dans la province.

    Je sais très bien que cette ligne de commande est totalement incorrecte mais je n'arrive pas à comprendre comment faire.

  6. #6
    Membre Expert
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 661
    Par défaut
    Bonjour,

    Le problème c'est qu'il est difficile de t'aider à la compréhension sans faire l'exercice à ta place, ce qui serait contre-productif pour toi. Mais on peut t'aider pour les détails

    En ce qui concerne la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if (sexe == 'H' && sexe >= 1997 && sexe <= 2004)
    Comme je disais, il faut comparer ce qui est comparable et comme tu lis la date de naissance juste avant, elle est encore disponible, donc il suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if (sexe == 'H' && an_nais >= 1997 && an_nais <= 2004)
    Ensuite, ta moyenne est a 0 car tu utilises des entiers pour la faire. En effet vu que tu débutes, tu ignores peut-être que la division d'entier en C# (et pas mal d'autres langages), c'est une division euclidienne en fait.

    C'est très facile à résoudre, il faut passer int age_moy en float age_moy. Mais ça ne suffit pas car il faut aussi forcer la division en elle-même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    age_moy = (float)somme_age / cpt; // Il faut convertir au moins un des membres en float pour forcer la division en virgule flottante
    C'est un peu technique mais il faut juste que tu gardes en tête cette différence.




    Voilà, il y aura encore peut-être des erreurs mais tu dois pas être loin de la fin.

Discussions similaires

  1. Petit problème de programmation.
    Par willow.A dans le forum C
    Réponses: 3
    Dernier message: 08/01/2007, 16h36
  2. Problème en programmant un GUI swing
    Par kaelem dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 05/01/2007, 11h59
  3. Problème de programmation orientée objet
    Par dan65 dans le forum WinDev
    Réponses: 8
    Dernier message: 17/09/2006, 01h04
  4. problème finalisation programme
    Par depelek dans le forum Installation, Déploiement et Sécurité
    Réponses: 9
    Dernier message: 02/05/2006, 16h17
  5. Réponses: 1
    Dernier message: 26/09/2005, 19h29

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