Probleme ds un programme en C++

watcher69 Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   -  
watcher69 Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   -
bonjour a tous,
voila j'ai un p'tit probleme sur un programme.
mon objectif est de développer un programme C++ permettant d'effectuer les quatre opérations de base (+-*/) sur des variables réelles double précision.
L'allure générale de l'ecran est
Saisir votre opération sous la forme: op1 opérateur op2
52.31+10.50
Le résultat: 52.31+10.50=62.81

et moi j'ai fais cela mais visual6.0 me dis que j'ai 15erreur et 1 warning. Mais je ne vois pas ou sont les erreurs. Si quelqu'un pourrai m'aider ce serait super cool merci d'avance.

Le programme fait:

#include <iostream>
#include <iomanip>
#include <math.h>

using namespace std;

void main(void)
{
int op1;
int op2;
char operateur;

cout<<"saisir op1: "<<ends;
cin>>op1;
cout<<"saisir op2: "<<ends;
cin>>op2;
cout<<"operateur: "<<ends;
cin>>operateur;

switch(operateur)
{
case +


cout<<"op1+op2= "<<ends;
break;

case -

cout<<"op1-op2= "<<ends;
break;

case *

cout<<"op1*op2= "<<ends;
break;

case /

cout<<"op1/op2= "<<ends;
break;

}
cout<<"résultat= "<<op1 operator op2<<endl;

}
}

9 réponses

julien
 
Deja j avoue ne pas voir en quoi consiste ton op1 operator op2 en dernier message ecran ? ....
0
watcher69 Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   2
 
non mais ca je me suis tromper c'est op1 operateur op2 ceci permet d'afficher par exemple

10 + 20 =30

tu vois le truc mais je pense pas que l'erreur vien de la!!!!!!
0
asdffff
 
asdfffffffffaaaaaaaaaaaaaaa
0
tafiscobar Messages postés 1277 Date d'inscription   Statut Contributeur Dernière intervention   177
 
salut, tout d'abords, enleves les ends, c'est endl (et ça tu devrais le remarquer non?)

tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
0
fleasfan Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
g regarder mé il ya encore 2 erreurs. regarde bien les syntaxes avant de taper c p^lus simple. jeaspere ke ca taidera.

#include <iostream>
#include <iomanip>
#include <math.h>

using namespace std;

void main(void)
{
int op1;
int op2;
char operateur;

cout<<"saisir op1: "<<endl;
cin>>op1;
cout<<"saisir op2: "<<endl;
cin>>op2;
cout<<"operateur: "<<endl;
cin>>operateur;

switch(operateur)
{
case '+':


cout<<"op1+op2= "<<endl;
break;

case '-':

cout<<"op1-op2= "<<endl;
break;

case '*':

cout<<"op1*op2= "<<endl;
break;

case '/':

cout<<"op1/op2= "<<endl;
break;

}
cout<<"résultat= "<<op1 operator op2<<endl;

}
0
watcher69 Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   2
 
merci bien pour la reponse
0

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

Posez votre question
Jolkdarr
 
Hello !

Programme qui marche :
#include <iostream>

int main()
{
	using namespace std;

	int op1;
	cout << "saisir op1: ";
	cin >> op1;

	int op2;
	cout << "saisir op2: ";
	cin >> op2;

	char operateur;
	cout << "operateur: ";
	cin >> operateur;

	int Resultat;
	switch (operateur)
	{
	case '+':
		Resultat = op1 + op2;
		break;

	case '-':
		Resultat = op1 - op2;
		break;

	case '*':
		Resultat = op1 * op2;
		break;

	case '/':
		Resultat = op1 / op2;
		break;
	
	default:
		cerr << "operateur inconnu";
		return -1;
	}

	cout << op1 << operateur << op2 << " = " << Resultat << endl;

	return 0;
}


Take care !
0
Guki
 
Salut!

Tu fais comment tes tabulations horizontales je suis jaloux. :-P
0
watcher69 Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   2
 
merci bien pour ce programme!!!!!
0
Jolkdarr
 
Avec la touche TAB.
0
Guki
 
Bizarre avec moi ça me les oublie.

	Peut être que comme ça?
0
Jolkdarr
 
Hello again !

Version plus "C++" où la "complexité" est encapsulée dans une classe wrapper qui permet d'utiliser des objets de l'utilisateur autres que int ou float :
#include <iostream>

template<class T>
class operation
{
public:
	explicit operation(char Code_operateur) : Op(0)
	{
		switch (Code_operateur)
		{
		case '+': Op = new add(); break;
		case '-': Op = new sub(); break;
		case '*': Op = new mul(); break;
		case '/': Op = new div(); break;
		}
	}
	
	virtual ~operation()
	{
		delete Op;
	}

	virtual T operator()(T Op1, T Op2) const
	{
		if (Op) return (*Op)(Op1, Op2);
		else	return Op1;
	}

protected:
	operation() : Op(0) {}	

private:
	// operations :
	class add : public operation
	{ T operator()(T Op1, T Op2) const { return Op1 + Op2; } };

	class sub : public operation
	{ T operator()(T Op1, T Op2) const { return Op1 - Op2; } };

	class mul : public operation
	{ T operator()(T Op1, T Op2) const { return Op1 * Op2; } };

	class div : public operation
	{ T operator()(T Op1, T Op2) const { return Op1 / Op2; } };

	// operation en cours :
	operation* Op;

	// methodes interdites :
	operation(const operation&) : Op(0) {}
	operation& operator=(const operation&) { return *this; }
};

int main()
{
	using namespace std;

	int op1;
	cout << "saisir op1: ";
	cin >> op1;

	int op2;
	cout << "saisir op2: ";
	cin >> op2;

	char operateur;
	cout << "operateur: ";
	cin >> operateur;
	cout << op1 << operateur << op2 << " = " << operation<int>(operateur)(op1, op2) << endl;

	return 0;
}


Have fun !
0
watcher69 Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   2
 
salut a toi,
mais ton programme ne marche pas, il m'indique 2 erreurs à l'execution ou sont elle!!!!!
0