Probleme de programmation sous C++

Fermé
aquadrox Messages postés 6 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 24 mai 2009 - 25 sept. 2003 à 12:50
 buzz - 25 déc. 2007 à 15:35
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...
A voir également:

8 réponses

aquadrox Messages postés 6 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 24 mai 2009 1
25 sept. 2003 à 13:24
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
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
>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
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
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
>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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
un bein faisant
25 sept. 2003 à 18:07
// 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
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
aquadrox Messages postés 6 Date d'inscription jeudi 25 septembre 2003 Statut Membre Dernière intervention 24 mai 2009 1
25 sept. 2003 à 19:40
Merci a tous pour votre aide et votre rapidité!!
0
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