Probleme de programmation sous C++

Bonjour a tous,voila je dois programmer quelque chose de tres simple mais comme je suis debutant je m'en sort pas, il doit servir a effectuer des operations de base (multiplication, division, addition, soustraction), il est trs simple a faire avec les commande if mais le probleme est que je dois imperativement utiliser la commande "switch" a la place des "if", du coup je ne sais pas comment faire, voila ce que j'ai fait pour le moment==>

#include<stdio.h>
#include<math.h>

main()
{
const int Addition=0;
const int Soustraction=1;
const int Multiplication =2;
const int Division=3;
float x ,float y ,codeo ,res;

printf("Entrer le premier terme:");
scanf("%f",&x);
printf("Entrer le dexieme terme:");
scanf("%f",&y);
printf("Choisissez l'opération à effèctuer, addition, soustraction, multiplication ou division:");
scanf("%f",&codeo);

switch(codeo)
{

case Addition
res=(x)+(y)
cout << "Le resultat de l'addition est:%f",res;
break;

case Soustraction
res=(x)-(y)
cout << "Le resultat de la soustraction est:%f",res;

case Multiplication
res=(x)*(y)
cout << "Le resultat de la multiplication est:%f",res;

case Division
res=(x)/(y)
cout << "Le resultat de la division est:%f",res;

default:

cout << "Opérateur inconnu!!\n";
break;
}
}

Merci de votre aide, le plus tot serai le mieux...

8 réponses

  1. Mise a jour==>
    #include<stdio.h>
    #include<math.h>

    int main()
    {
    const int Addition=0;
    const int Soustraction=1;
    const int Multiplication =2;
    const int Division=3;
    float x,y,codeo ,res;

    printf("Entrer le premier terme:");
    scanf("%f",&x);
    printf("Entrer le dexieme terme:");
    scanf("%f",&y);
    printf("Choisissez l'opération à effèctuer, addition, soustraction, multiplication ou division:");
    scanf("%f",&codeo);

    switch(codeo)
    {

    case 0
    res=(x)+(y)
    cout << "Le resultat de l'addition est:%f",res;
    break;

    case 1
    res=(x)-(y)
    cout << "Le resultat de la soustraction est:%f",res;
    break;

    case 2
    res=(x)*(y)
    cout << "Le resultat de la multiplication est:%f",res;
    break;

    case 3
    res=(x)/(y)
    cout << "Le resultat de la division est:%f",res;
    break;

    default:

    cout << "Opérateur inconnu!!\n";
    break;

    }
    }

    Pour vous faciliter la tache voila le log des erreurs==>
    C:/Documents and Settings/Flomien/Bureau/flo/info/travail C++/1/test/test2.cpp:33: parse
    error before `=' token
    C:/Documents and Settings/Flomien/Bureau/flo/info/travail C++/1/test/test2.cpp:39: parse
    error before `=' token
    C:/Documents and Settings/Flomien/Bureau/flo/info/travail C++/1/test/test2.cpp:46: `

    cout' undeclared (first use this function)
    C:/Documents and Settings/Flomien/Bureau/flo/info/travail C++/1/test/test2.cpp:46: (Each
    undeclared identifier is reported only once for each function it appears
    in.)

    C:/Documents and Settings/Flomien/Bureau/flo/info/travail C++/1/test/test2.cpp:25: warning: unreachable
    code at beginning of switch statement

    Exécution terminée
    1
    1. Salut,
      ca a l'air pas trop mal
      pense bien a remplacer les printf par cout<< et les scanf par cin<<
      si tu fait du C++ et pas du C
      oublie pas les break derrière chaque sous cas du switch
      verifie bien les syntaxes (point virgules dans le switch...par exemple)
      et moi pour les case j'ecirai plutot case 0
      case 1 case3 que case addition ....

      ca devrait marcher
      A+
      0
      1. >et moi pour les case j'ecirai plutot case 0
        >case 1 case3 que case addition ....

        bonjour la clarte!
        il faut utiliser une enum dans ce cas ci:
        enum {addition, soustraction, division, multiplication};

        switch(pouet)
        {
        case addition:
        ....
        }

        --
        pouet
        0
    2. et
      int codeo

      car en C/C++ des fois (dépend des machines)

      float a = 1.0;
      float b = 1;

      et a==b répond vrai ou faux car 1.0 est parfois codé comme 0.999999.... et des brouettes

      pour le reste utilises des double plutot que des float et "%lf" au lieu de "%f" (les doubles sont mieux codés en C/C++ ...

      remplace (x) par x et (y) par y c'est inutile ici.

      c'est utile pour les expressions compliquées ave c priorités d'opérateurs du style (a+b)*(a-b)

      @+,

      mirza
      0
      1. dans le cout pour ecrire le res apres ta phrase il faut enchainer par le signe<< et ca donne:

        cout<<"le resultat est:" << res ;

        pour utiliser cout inclue la bibliotheque <stdlib.h> et <iostream.h>
        0
        1. >pour utiliser cout inclue la bibliotheque <stdlib.h> et <iostream.h>
          c est faux!
          cout est declaree dans iostream.h, tu n as pas besoin d inclure stdlib.h qui est un en-tete de la bibliotheque standard du C.

          donc:
          #include <iostream>
          et c est tout.

          --
          pouet
          0
      2. tu as une erreur parce que tu as oublié de mettre les ":" et les "<<":

        case 0 :
        res=(x)+(y)
        cout << "Le resultat de l'addition est: "<<res;
        break;

        A+
        0
        1. // oper.cpp : Defines the entry point for the console application.
          //

          #include "stdafx.h"

          #include<stdio.h>
          #include<math.h>
          #include <stdlib.h>
          #include<iostream.h>

          void main(void)
          {
          const int Addition=0;
          const int Soustraction=1;
          const int Multiplication =2;
          const int Division=3;
          float x,y,res;
          int codeo = -1;

          printf("Entrer le premier terme:");
          scanf("%f",&x);
          printf("Entrer le dexieme terme:");
          scanf("%f",&y);
          printf("Choisissez l'opération à effèctuer, addition, soustraction, multiplication ou division:");
          scanf("%d",&codeo);

          switch(codeo)
          {

          case 0:
          res=(x)+(y);
          cout << "\nLe resultat de l'addition est : "<<res;
          break;

          case 1:
          res=(x)-(y) ;
          cout << "Le resultat de la soustraction est:"<<res;
          break;

          case 2:
          res=(x)*(y) ;
          cout << "Le resultat de la multiplication est:"<<res;
          break;

          case 3:
          res=(x)/(y) ;
          cout << "Le resultat de la division est:"<<res;
          break;

          default:

          cout << "Opérateur inconnu!!\n";
          break;

          }
          }

          j'ai fait marcher ton programme, mais je te conseil de lire et de te documenter avant de commencer a programmer
          en plus, tes message doivent etre claire et un bon dialogue claire et lisible entre toi et l'usager, exemple
          quan vous dite Entrer le premier terme il faut ajouter suivit de RC

          quand vous dite : Choisissez l'opération à effèctuer, addition, soustraction, multiplication ou division:");

          il faut dire 1, pour l'addition 2, pour la mult etc, sinon l'usager ne peut pas deviner

          troixiemment, n'utilise pas le 0 pour le choix de reponse, car le zero est utiliser pour le programmeur souvent (indexage, tableau et autre )

          4- Utlilise le C++ et ses force si tu fais de c++ sinon c

          Bonne chance et apprentissage, je n'etais que de passage
          0
          1. bon on se la refait parce qu il y a des gens qui suivent on dirait.
            j assume que le langage desire est le C++, au vu du titre du message.

            #include "stdafx.h"
            // qu est ce que c est que ca???

            #include<stdio.h>
            // on fait du c++
            #include<math.h>
            // inutile
            #include <stdlib.h>
            #include<iostream.h>
            // deprecie mais si tu y tiens

            void main(void)
            // ca n existe pas. c est
            // int main(void)
            {
            const int Addition=0;
            const int Soustraction=1;
            const int Multiplication =2;
            const int Division=3;
            // NON: utiliser une enum (deja dit)
            // enum {addition, soustraction, division, multiplication};

            float x,y,res;
            int codeo = -1;

            printf("Entrer le premier terme:");
            // c est du c! en c++ on fait comme ca:
            // std::cout << "Entrer le premier terme:";
            scanf("%f",&x);
            // std::cin >> x;
            printf("Entrer le dexieme terme:");
            // idem
            scanf("%f",&y);
            // idem
            printf("Choisissez l'opération à effèctuer, addition, soustraction, multiplication ou division:");
            // idem
            scanf("%d",&codeo);
            // idem

            switch(codeo)
            {

            case 0:
            // utiliser l'enum!
            // case addition:
            res=(x)+(y);
            // les parentheses sont inutiles
            cout << "\nLe resultat de l'addition est : "<<res;
            // pas de retourn a la ligne?
            break;

            case 1:
            res=(x)-(y) ;
            cout << "Le resultat de la soustraction est:"<<res;
            break;

            case 2:
            res=(x)*(y) ;
            cout << "Le resultat de la multiplication est:"<<res;
            break;

            case 3:
            res=(x)/(y) ;
            cout << "Le resultat de la division est:"<<res;
            break;

            default:

            cout << "Opérateur inconnu!!\n";
            // NON pas \n en c++ c est
            // std::cout << "operateur inconnu" << std::endl;
            break;

            // NON il manque:
            // return 0;

            }
            }

            maintenant ca devrait aller.
            il faudrait faire la difference entre le C et le C++.

            [...]

            >4- Utlilise le C++ et ses force si tu fais de c++ sinon c
            c est vrai.

            --
            pouet
            0
        2. Merci a tous pour votre aide et votre rapidité!!
          0
          1. slt,

            voila, je te propose ce code que j'ai fait pour une calculatrice ( addition, soustraction etc..). Il est assez complet ms, tu prends ce que tu veux. Le code est plus simple que les autres que j'ai vu précédement.

            @++
            Philippe

            /*
            Name: Caclulette convertisseur
            Author: Garfield37
            Date: 23/07/07
            Copyright: 2004
            */

            #include <iostream>
            #include <conio.c>

            void addition();
            void soustraction();
            void multiplication();
            void division();
            void evf(); //euro vers francs
            void fve(); //francs vers euro
            void rc(); //racine carré

            using namespace std;
            int a, b, c;
            char z;

            int main()
            {
            textcolor(9); //couleur bleue
            cout<<"************************************************************************\n";
            cout<<"************************************************************************\n";
            cout<<"**************************** Calculette ********************************\n";
            cout<<"************************************************************************\n";
            cout<<"************************************************************************\n";
            cout<<" by Garfield37\n\n";

            cout<<"Choisissez le type d'operation: \n\n";
            cout<<"\t1 : Addition\n";
            cout<<"\t2 : Soustraction\n";
            cout<<"\t3 : Multiplication\n";
            cout<<"\t4 : Division\n";
            cout<<"\t5 : Convertisseur euros - francs\n";
            cout<<"\t6 : Convertisseur francs - euros\n";
            cout<<"\t7 : Racine carre\n";
            cout<<"\tOu tapez autre chose pour quitter\n\n";
            cout<<"Votre choix: ";
            cin>>z;
            cout<<"\n\n";

            switch (z)
            {
            case '1': addition();
            break;
            case '2': soustraction();
            break;
            case '3': multiplication();
            break;
            case '4': division();
            break;
            case '5': evf();
            break;
            case '6': fve();
            break;
            case '7': rc();
            break;
            default : exit(0);
            break;
            }

            return 0;
            }

            void addition()
            {
            cout<<"Quels nombres voulez-vous additioner?\n";
            cin>>a;
            cout<<"+\n";
            cin>>b;
            cout<<"\nLe resultat est "<<a+b<<"\n\n";
            system ("PAUSE"); //"Appuyez sur une touche pour continuer"
            system ("cls"); //Efface la totalité de l'écran (ca devient plus lisible d'un coup!)

            main();
            }

            void soustraction()
            {
            cout<<"Quels nombres voulez-vous soustraire?\n";
            cin>>a;
            cout<<"-\n";
            cin>>b;
            cout<<"\nLe resultat est "<<a-b<<"\n\n";
            system ("PAUSE");
            system ("cls");

            main();
            }

            void multiplication()
            {
            cout<<"Quels nombres voulez-vous multiplier?\n";
            cin>>a;
            cout<<"x\n";
            cin>>b;
            cout<<"\nLe resultat est "<<a*b<<"\n\n";
            system ("PAUSE");
            system ("cls");

            main();
            }

            void division()
            {
            cout<<"Quels nombres voulez-vous diviser?\n";
            cin>>a;
            cout<<":\n";
            cin>>b;

            if (b==0) cout<<"On ne peut pas diviser par 0\n\n";
            else cout<<"\nLe resultat est "<<a/b<<"\nde reste: "<<a%b<<"\n";

            cout<<"\n";
            system ("PAUSE");
            system ("cls");

            main();
            }

            void evf()
            {
            cout<<"Quelle somme en euros voulez-vous convertir?\n";
            cin>>a; cout<<" euros donnent "<<a*6.55957<<" francs\n\n"; //le taux de convertion
            system ("PAUSE");
            system ("cls");

            main();
            }

            void fve()
            {
            cout<<"Quelle somme en francs voulez-vous convertir?\n";
            cin>>a; cout<<" francs donnent "<<a/6.55957<<" euros\n\n"; //le taux de convertion
            system ("PAUSE");
            system ("cls");

            main();
            }

            void rc()
            {
            cout<<"De quel nombre voulez-vous avoir la racine carre?\n";
            cin>>a; cout<<" renvoi "<<sqrt(a)<<"\n\n"; //sqrt sert a avoir la racine carré de la variable entre parenthèses
            system ("PAUSE");
            system ("cls");

            main();
            }
            0