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 :

[Calculatrice] Elle ne calcul pas !


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Programmeur
    Inscrit en
    Octobre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2
    Par défaut [Calculatrice] Elle ne calcul pas !
    Bonjour à tous et à toutes.
    Mon programme est censé demandé le premier nombre, second nombre puis calculer les deux valeurs selon ce que l'utilisateur à choisi. (+, -, /, x)

    Le problème, c'est que le programme me demande les deux chiffres puis me balance le default de mon switch dans la gueule.

    Voici mon code :
    main.cpp :
    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
    ///Calculatrice crée par Amir Chali.
     
    #include <iostream>
    #include <string>
    #include "calcul.h"
    using namespace std;
     
    char choixMod()
    {
        char choixOp; //Variable du menu
     
        cout << "*******************" << endl << endl;
        cout << "+ = Addition" << endl;
        cout << "- = Soustraction" << endl;
        cout << "x = Multiplication" << endl;
        cout << "/ = division" << endl;
        cout << "*******************" << endl << endl;
        cin >> choixOp;
     
       return choixOp;
    }
     
    int main()
    {
        cout << "********************* " << endl;
     cout <<" Calculatrice by Amir " << endl;
       cout << "*********************" << endl << endl << endl << endl;
     
        ///Appelle de la fonction choixMod :
        char appellechoixMod; //Variable pour appeler la fonction choixMod.
        appellechoixMod = choixMod(); //Appelle de la fonction choixMod.
     
        ///Appelle de la fonction theCalcul :
       double a(0), b(0), c(0), d(0); //Variables pour appeler la fonction theCalcul.
       a = theCalcul(b, c, d); //Appelle de la fonction theCalcul.
     
        return 0;
    }
    calcul.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #ifndef CALCUL_H_INCLUDED
    #define CALCUL_H_INCLUDED
     
    #include <iostream>
    #include <string>
     
    double theCalcul(double a, double b, char choixOp); //Appelle theCalcul (fonction)
    char choixMod(); //Appelle choixMod (fonction)
     
    #endif // CALCUL_H_INCLUDED
    calcul.cpp :
    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
    include "calcul.h"
    using namespace std;
     
    double theCalcul(double a, double b, char choixOp)
    {
     
        cout << "Entre le premier nombre : ";
        cin >> a; //Demande d'entré le premier nombre.
     
        cout << "Entre le second nombre : ";
        cin >> b;//Demande d'entré le second nombre.
     
        switch(choixOp)
        {
            case '+': //Si il a choisi addition (+) ...
            cout << a << " + " << b << " = " << a + b << endl; //Calcul pour l'addition.
            break;
     
            case '-': //Si il a choisi soustraction (-) ...
            cout << a << " - " << b << " = " << a - b << endl; //Calcul pour la soustraction.
            break;
     
            case 'x'://Si il a choisi multiplication (x) ...
            cout << a << " x " << b << " = " << a * b << endl; //Calcul pour la multiplication.
            break;
     
            case '/': //Si il a choisi division (/) ...
            cout << a << " : " << b << " = " << a / b << endl; //Calcul pour la division.
            break;
     
            default:
            cout << endl << endl << "ERREUR" << endl;
            break;
        }
     
        return a; //Renvoie a et b.
    }
    Je voudrais que le programme calcul les deux valeurs selont l'opérateur utilisé. (ce qui n'est pas le cas).

    Merci d'avance et bonne soiré (Dodo ?)

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Bonsoir,

    J'ai fait un peu de C et C++ il y a longtemps donc je ne suis pas au point mais je vois quand même une chose dans ton programme :
    Citation Envoyé par Saye93 Voir le message
    main.cpp :
    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
     
     
    int main()
    {
     
        ///Appelle de la fonction choixMod :
        char appellechoixMod; //Variable pour appeler la fonction choixMod.
        appellechoixMod = choixMod(); //Appelle de la fonction choixMod.
     
        ///Appelle de la fonction theCalcul :
       double a(0), b(0), c(0), d(0); //Variables pour appeler la fonction theCalcul.
       a = theCalcul(b, c, d); //Appelle de la fonction theCalcul.
     
        return 0;
    }
    Regarde ici le troisième argument de la fonction "theCalcul" est de type char mais toi tu as mis la variable d de type double. Normalement d'après le début de main() tu devrais plutôt écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = theCalcul(b, c, appellechoixMod)

    Sinon je pense que les variables a,b,c et d de type double ne sont pas utiles dans ton main() car tu ne les utilises pas, une fonction genre "void theCalcul(char choixOp) est suffisante je pense :

    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
    void theCalcul(char choixOp)
    {
        double a, b;
     
        cout << "Entre le premier nombre : ";
        cin >> a; //Demande d'entré le premier nombre.
     
        cout << "Entre le second nombre : ";
        cin >> b;//Demande d'entré le second nombre.
     
        switch(choixOp)
        {
            case '+': //Si il a choisi addition (+) ...
            cout << a << " + " << b << " = " << a + b << endl; //Calcul pour l'addition.
            break;
     
            case '-': //Si il a choisi soustraction (-) ...
            cout << a << " - " << b << " = " << a - b << endl; //Calcul pour la soustraction.
            break;
     
            case 'x'://Si il a choisi multiplication (x) ...
            cout << a << " x " << b << " = " << a * b << endl; //Calcul pour la multiplication.
            break;
     
            case '/': //Si il a choisi division (/) ...
            cout << a << " : " << b << " = " << a / b << endl; //Calcul pour la division.
            break;
     
            default:
            cout << endl << endl << "ERREUR" << endl;
            break;
        }
    }
    Je ne me souviens plus si il faut ou non mettre le "return"dans ce cas...

  3. #3
    Candidat au Club
    Homme Profil pro
    Programmeur
    Inscrit en
    Octobre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2
    Par défaut
    Merci beaucoup, prob' résolu ! (ps : Pas besoin du return en void) merci encore !
    Bonne nuit !

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Citation Envoyé par Saye93 Voir le message
    Merci beaucoup, prob' résolu ! (ps : Pas besoin du return en void) merci encore !
    Bonne nuit !
    De rien et tant mieux si c'est résolu. Il faut (je crois) que tu mettes la discussion en [Résolu] en cliquant sur le bouton "résolu"

    PS : Merci pour la confirmation.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. calculette qui calcule pas (aide svp)
    Par samy100 dans le forum C
    Réponses: 37
    Dernier message: 28/04/2006, 04h19
  2. Ma requête ne calcul pas pour tout les champs
    Par leloup84 dans le forum Requêtes
    Réponses: 10
    Dernier message: 01/03/2006, 12h59
  3. Ma requête ne calcul pas pour tout les champs
    Par leloup84 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/03/2006, 10h11
  4. connexion avec le reseau est-elle etablie ou pas? search api
    Par mehdi_swatch dans le forum Windows
    Réponses: 2
    Dernier message: 29/03/2005, 17h54
  5. [D7-EXCEL2000] Formule dans cellule Excel qui ne se calcule pas
    Par Albertolino dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 09/09/2003, 14h18

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