Probleme ds un programme en C++

Fermé
watcher69 Messages postés 48 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 7 juillet 2005 - 7 oct. 2004 à 17:47
watcher69 Messages postés 48 Date d'inscription jeudi 7 octobre 2004 Statut Membre Dernière intervention 7 juillet 2005 - 11 oct. 2004 à 08:26
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

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 jeudi 7 octobre 2004 Statut Membre Dernière intervention 7 juillet 2005 2
7 oct. 2004 à 18:11
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
asdfffffffffaaaaaaaaaaaaaaa
0
tafiscobar Messages postés 1277 Date d'inscription jeudi 7 décembre 2000 Statut Contributeur Dernière intervention 26 février 2009 177
7 oct. 2004 à 19:15
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 lundi 29 mars 2004 Statut Membre Dernière intervention 29 décembre 2005
7 oct. 2004 à 19:31
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 jeudi 7 octobre 2004 Statut Membre Dernière intervention 7 juillet 2005 2
7 oct. 2004 à 20:14
merci bien pour la reponse
0

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

Posez votre question
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
Salut!

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

	Peut être que comme ça?
0
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 jeudi 7 octobre 2004 Statut Membre Dernière intervention 7 juillet 2005 2
11 oct. 2004 à 08:26
salut a toi,
mais ton programme ne marche pas, il m'indique 2 erreurs à l'execution ou sont elle!!!!!
0