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 :

Code source d'une calculatrice


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Code source d'une calculatrice
    Bonjour,
    Je suis débutant en C et développe en ce moment une calculatrice réalisant les 4 opérations de base sur un programme en console, je vous joint ici le code source:

    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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
    int main()
    {
      printf("Bienvenue dans une calculatrice dediee aux calculs de base");
      int resultat = 0, nombre1 = 0, nombre2 = 0;
     
      printf("\n\n Entrez le calcul que vous souhaitez faire: ");
      scanf("%d", &nombre1);
      scanf("%d", &nombre2);
     
      if (nombre1+nombre2)
      {
          printf("\n\nVoici le resultat : %d ", nombre1+nombre2);
      }
      else if (nombre1-nombre2)
      {
          printf("\n\nVoici le resultat : %d ", nombre1-nombre2);
      }
      else if (nombre1*nombre2)
      {
          printf("\n\nVoici le resultat : %d", nombre1*nombre2);
      }
      return 0;
    }
    Je suis donc comme on peut le voir en train de faire la multiplication, rien de bien compliqué a part que lorsque je teste le programme, l'addition et la soustraction fonctionnent mais la multiplication ne fonctionne pas, par exemple si je fais 4*2, le pc me répond que le résultat est 4, j'ai test la division (pas jointe ici) le meme probleme, par exemple 9/3 = 9 pour le pc.

    Si quelqu'un pouvait m'indiquer où se trouvait l'erreur svp

    Merci d'avance !

  2. #2
    Expert confirmé Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Points : 5 382
    Points
    5 382
    Par défaut
    ton code ne fait que de l'addition avec les "if .. else if ..."
    je te conseille de regarder sur google il y plein de liens sur des forums qui parlent de calculatrice.

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 81
    Points : 128
    Points
    128
    Par défaut
    Le code suivant est l'équivalent du tien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        int resultat = 0, nombre1 = 0, nombre2 = 0;
     
        printf("Entrez le calcul que vous souhaitez faire : ");
        scanf("%d", &nombre1);
        scanf("%d", &nombre2);
     
        resultat = nombre1 + nombre2;
        if (resultat)
        {
            printf("\n\nVoici le resultat : %d ", resultat);
        }
    On est loin de la calculatrice.
    Si tu veux saisir une opération du style "5+6", il faut que tu utilises une chaîne de caractères.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Et par rapport au code source que j'ai fait il est donc impossible d'effectuer des multiplications ou encore des divisions?

  5. #5
    Membre habitué

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 39
    Points : 169
    Points
    169
    Par défaut
    Bonjour,

    La base pour faire un calcul, c'est d'avoir deux opérandes et un opérateur. Dans ton code, tu demandes la saisie de deux nombres, ça c'est bon, mais tu ne demandes jamais d'opérateur (+ - * /). Donc soit tu lis avec un scanf l'opérateur en plus des deux nombres, soit tu écris un petit menu du style :

    Maintenant que vous avez saisi les deux nombres, merci de me dire quelle opération vous voulez appliquer :
    1. Addition
    2. Soustraction
    3. Multiplication
    4. Division

    Tu peux ainsi lire l'opération dans une variable et ensuite faire tes tests :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (operation == 1 )
    {
       // Traitement de l'addition
    } else
    {
    ....
    }
    Pour l'explication de ton code, "if" évalue numériquement ce qu'il y a entre paranthèses. Et tous les tests sont ramenés à une valeur numérique. if(0) est toujours faux, les autres valeurs comptent toujours pour vrai.

    Imaginons ton cas, l'utilisateur entre deux chiffres, 4 et 5. 4+5 = 9 et 9 est différent de 0, donc if(9) est vrai et on entre dans le bloc et on te donne le résultat de l'addition. J'ai par contre un gros doute quand tu dis que la soustraction marche.

    Bonne journée,

    Aldemius

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Ok, j'ai rerédigé un code source utilisant un petit menu qui marche nickel !

    Merci beaucoup

    Par contre, je peux te confirmer que la soustraction fonctionnait parfaitement !

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 81
    Points : 128
    Points
    128
    Par défaut
    Citation Envoyé par DarkSmooth Voir le message
    Par contre, je peux te confirmer que la soustraction fonctionnait parfaitement !
    Parce qu'une soustraction, c'est un cas particulier d'addition !
    Si tu as saisi "6-4", tu te retrouves avec nombre1 = 6 et nombre2 = -4.
    Et jusqu'à preuve du contraire, 6 + (-4) = 2 !

    Donc, lorsque tu fais ça :
    C'est comme si tu faisais ça :
    Cette une condition qui est toujours vraie !
    Et le problème ne change pas quelques soient les nombres utilisés.

    Ton code se résume à :
    1. Saisir deux nombres
    2. Afficher la somme de ses deux nombres si cette somme est non nulle.
    C'est la seule chose que fait ce programme !

Discussions similaires

  1. Acceder au code source d'une page extérieure
    Par duplo dans le forum Langage
    Réponses: 6
    Dernier message: 28/05/2006, 01h19
  2. [FLASH MX2004 PRO] Recuperer le code source d'une page
    Par adilou1981 dans le forum Flash
    Réponses: 9
    Dernier message: 26/07/2005, 18h11
  3. [Reseau] Récupérer le code source d'une URL
    Par gogolpexe dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 29/06/2005, 14h06
  4. Récupérer le code source d'une page web
    Par glRaZ dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/12/2004, 09h16
  5. [Juridique] Comment réutiliser le code source d'une classe ?
    Par mathieu dans le forum Général Java
    Réponses: 8
    Dernier message: 17/05/2004, 13h40

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