Probleme calculatrice c++
roroo07
Messages postés
504
Date d'inscription
Statut
Membre
Dernière intervention
-
roroo07 Messages postés 504 Date d'inscription Statut Membre Dernière intervention -
roroo07 Messages postés 504 Date d'inscription Statut Membre Dernière intervention -
Bonjour, a tous je me suis lancer dans la programmation en c++ avec un livre j'ai fait le 1er chapitre qui m'apprener a faire un jeux en utilisante les boucle les variable j'ai reussi a faire le jeux et a le comprendre j'ai voulut donc essayer de faire une calculatrice mais j'y arrive pas voila mon code source :
#include <iostream>
using namespace std;
void main (void)
{
int a,b,c,p,m,mu,d;
cout << " Bienvenue ! "
<< " Veuillez choisir le signe de l'operation (plus(p);moins(m);multiplier(mu);diviser(d)) "
<< endl;
cin >> c;
if (c == p)
{
cout << "Veulliez choisir le chiffre a et le chiffre b" << endl;
cin >> a
>> b;
cout << "Le resultat est : " << a+b << endl;
}
if (c == m)
{
cout << "Veulliez choisir le chiffre a et le chiffre b" << endl;
cin >> a
>> b;
cout << " Le resulat est : " << a-b << endl;
}
if (c == mu)
{
cout << " Veulliez choisir le chiffre a et le chiffre b " << endl;
cin >> a
>> b;
cout << " Le resultat est : " << a*b << endl;
}
if (c == d)
{
cout << " Veulliez choisir le chiffre a et le chiffre b " << endl;
cin >> a
>> b;
cout << " Le resultat est : " << a/b << endl;
}
}
#include <iostream>
using namespace std;
void main (void)
{
int a,b,c,p,m,mu,d;
cout << " Bienvenue ! "
<< " Veuillez choisir le signe de l'operation (plus(p);moins(m);multiplier(mu);diviser(d)) "
<< endl;
cin >> c;
if (c == p)
{
cout << "Veulliez choisir le chiffre a et le chiffre b" << endl;
cin >> a
>> b;
cout << "Le resultat est : " << a+b << endl;
}
if (c == m)
{
cout << "Veulliez choisir le chiffre a et le chiffre b" << endl;
cin >> a
>> b;
cout << " Le resulat est : " << a-b << endl;
}
if (c == mu)
{
cout << " Veulliez choisir le chiffre a et le chiffre b " << endl;
cin >> a
>> b;
cout << " Le resultat est : " << a*b << endl;
}
if (c == d)
{
cout << " Veulliez choisir le chiffre a et le chiffre b " << endl;
cin >> a
>> b;
cout << " Le resultat est : " << a/b << endl;
}
}
A voir également:
- Probleme calculatrice c++
- Calculatrice gratuit - Télécharger - Calcul & Conversion
- Installer calculatrice - Télécharger - Calcul & Conversion
- Ma-calculatrice - Télécharger - Calcul & Conversion
- Calculatrice windows 7 - Télécharger - Calcul & Conversion
- Log sur calculatrice ti collège plus - Forum calculatrices
4 réponses
Lorsque tu fais if (c==p) par exemple, en fait c'est (c=="p") qu'il faut mettre.
Du coup les variables p, m, mu, et d ne servent à rien.
De plus c est déclaré comme de type int, il est évident que ce sera un string !
Il te manquera plus que #include <string> à mettre et ça marchera...
Remarque : normalement la méthode main renvoie un int (0 en cas de succès)
La confiance n'exclut pas le contrôle
Du coup les variables p, m, mu, et d ne servent à rien.
De plus c est déclaré comme de type int, il est évident que ce sera un string !
Il te manquera plus que #include <string> à mettre et ça marchera...
Remarque : normalement la méthode main renvoie un int (0 en cas de succès)
La confiance n'exclut pas le contrôle
oh la...
j'ai les yeux qui saignent...
avant même de savoir si le code fonctionne ou pas...
il faut commencer par revoir l'algo...
il faut saisir les chiffres avant de saisir l'opérateur.
il faut utiliser un case pour les opérations et non 4 si,
il faut utiliser une seule ligne d'affichage
et tu saisies un caractere.. pardon une chaine (pour le mu) dans un int...
donc c'est sur de pas marcher...
au passage, utilises des variables réprésentative dans ton code..
et un peu de controle de saise ne serait pas de trop (entre autre pour la division par zéro)
bref : 1/10, pour les impulsions électrique...
Stop failing the turing test !
j'ai les yeux qui saignent...
avant même de savoir si le code fonctionne ou pas...
il faut commencer par revoir l'algo...
il faut saisir les chiffres avant de saisir l'opérateur.
il faut utiliser un case pour les opérations et non 4 si,
il faut utiliser une seule ligne d'affichage
et tu saisies un caractere.. pardon une chaine (pour le mu) dans un int...
donc c'est sur de pas marcher...
au passage, utilises des variables réprésentative dans ton code..
et un peu de controle de saise ne serait pas de trop (entre autre pour la division par zéro)
bref : 1/10, pour les impulsions électrique...
Stop failing the turing test !
en fait, le problème ici n'est pas au niveau du langage C++ (l'histoire des int/char est pas si terrible comme erreur)
le problème est niveau de la façon de penser...
c'est quelque chose que tu n'apprendras ni dans les livres, ni dans les sites internet.
que tu ne connaisse pas encore les case, les whiles pour faire la vérif, ok.
par contre, afficher une seule fois la ligne de saisie et une seule fois la ligne d'affichage, c'est la base, c'est pour ça que tu fais un programme.
Si tu ne commence pas à réfléchir à ça dès le début, tu ne seras qu'un codeur, et pas un programmeur, et quand tes programmes commenceront à etre vraiment complexe, tu n'arriveras plus à rien.
le problème est niveau de la façon de penser...
c'est quelque chose que tu n'apprendras ni dans les livres, ni dans les sites internet.
que tu ne connaisse pas encore les case, les whiles pour faire la vérif, ok.
par contre, afficher une seule fois la ligne de saisie et une seule fois la ligne d'affichage, c'est la base, c'est pour ça que tu fais un programme.
Si tu ne commence pas à réfléchir à ça dès le début, tu ne seras qu'un codeur, et pas un programmeur, et quand tes programmes commenceront à etre vraiment complexe, tu n'arriveras plus à rien.
#include <iostream>
using namespace std;
#include <string>
void main (void)
{
int a,b,c;
cout << " Bienvenue ! " << " Veuillez choisir le signe de l'operation (plus(p);moins(m);multiplier(mu);diviser(d)) " << endl;
cin >> c;
if (c=="p")
cout << "Veulliez choisir le chiffre a et le chiffre b" << endl;
cin >> a >> b;
cout << "Le resultat est : " << a+b << endl;
if (c=="m")
cout << "Veulliez choisir le chiffre a et le chiffre b" << endl;
cin >> a >> b;
cout << " Le resulat est : " << a-b << endl;
if (c=="mu")
cout << " Veulliez choisir le chiffre a et le chiffre b " << endl;
cin >> a >> b;
cout << " Le resultat est : " << a*b << endl;
if (c=="d")
cout << " Veulliez choisir le chiffre a et le chiffre b " << endl;
cin >> a >> b;
cout << " Le resultat est : " << a/b << endl;
}
Le nouveau code mais j'ai des erreur par rapport au ==
using namespace std;
#include <string>
void main (void)
{
int a,b,c;
cout << " Bienvenue ! " << " Veuillez choisir le signe de l'operation (plus(p);moins(m);multiplier(mu);diviser(d)) " << endl;
cin >> c;
if (c=="p")
cout << "Veulliez choisir le chiffre a et le chiffre b" << endl;
cin >> a >> b;
cout << "Le resultat est : " << a+b << endl;
if (c=="m")
cout << "Veulliez choisir le chiffre a et le chiffre b" << endl;
cin >> a >> b;
cout << " Le resulat est : " << a-b << endl;
if (c=="mu")
cout << " Veulliez choisir le chiffre a et le chiffre b " << endl;
cin >> a >> b;
cout << " Le resultat est : " << a*b << endl;
if (c=="d")
cout << " Veulliez choisir le chiffre a et le chiffre b " << endl;
cin >> a >> b;
cout << " Le resultat est : " << a/b << endl;
}
Le nouveau code mais j'ai des erreur par rapport au ==
#include <iostream>
#include <cstring> ou #include <string> // J'ai un doute
using namespace std;
void main
{
int a,b, res;
string rep;
cout << " Bienvenue ! "
<< " Veuillez choisir le signe de l'operation (plus(p);moins(m);multiplier(mu);diviser(d)) "
<< endl;
cin >> rep;
cout<<"Veuillez choisir vos deux entiers a et b"<<endl;
if (rep=="p")
res=a+b;
if (rep=="m")
res=a-b;
if (c=="mu")
res=a*b;
if (c=="d")
res=a/b;
cout<<"Le resultat est "<<res<<endl;
}
#include <cstring> ou #include <string> // J'ai un doute
using namespace std;
void main
{
int a,b, res;
string rep;
cout << " Bienvenue ! "
<< " Veuillez choisir le signe de l'operation (plus(p);moins(m);multiplier(mu);diviser(d)) "
<< endl;
cin >> rep;
cout<<"Veuillez choisir vos deux entiers a et b"<<endl;
if (rep=="p")
res=a+b;
if (rep=="m")
res=a-b;
if (c=="mu")
res=a*b;
if (c=="d")
res=a/b;
cout<<"Le resultat est "<<res<<endl;
}
voici le nouveau code il me manquerai un truc pour que ce soit parfait c'est que quand sa recommence que la console ce vide...
#include <iostream>
using namespace std;
#include <string>
void main (void)
{
while(true)
{
int a,b,res;
string rep;
cout << " Bienvenue ! " << " Veuillez choisir le signe de l'operation (+;-;*;/) " << endl;
cin >> rep;
if ((rep=="/")||(rep=="*")||(rep=="-")||(rep=="+")) // si les signe sont bon il continue le programme
{
cout << "Veulliez choisir a et b : " << endl;
cout << "a= ";
cin >> a;
cout << "b= ";
cin >> b;
if (rep=="+")
res = a + b;
if (rep=="-")
res = a - b;
if (rep=="*")
res = a * b;
if (rep=="/")
{if (b!=0)
{res = a / b;
cout << " Le resultat est : " << res << endl; // obliger de mettre sa sinon il m'afficher pas le resultat
system("Pause");
}
else
cout << " Erreur on ne peux pas diviser par 0 !!" << endl;
continue;
}
cout << " Le resultat est : " << res << endl;
system("Pause");
}
else
cout << " Vous n'avez pas rentrez (+;-;*;/). Veulliez recommencez !!" <<endl;
continue;
}
}
#include <iostream>
using namespace std;
#include <string>
void main (void)
{
while(true)
{
int a,b,res;
string rep;
cout << " Bienvenue ! " << " Veuillez choisir le signe de l'operation (+;-;*;/) " << endl;
cin >> rep;
if ((rep=="/")||(rep=="*")||(rep=="-")||(rep=="+")) // si les signe sont bon il continue le programme
{
cout << "Veulliez choisir a et b : " << endl;
cout << "a= ";
cin >> a;
cout << "b= ";
cin >> b;
if (rep=="+")
res = a + b;
if (rep=="-")
res = a - b;
if (rep=="*")
res = a * b;
if (rep=="/")
{if (b!=0)
{res = a / b;
cout << " Le resultat est : " << res << endl; // obliger de mettre sa sinon il m'afficher pas le resultat
system("Pause");
}
else
cout << " Erreur on ne peux pas diviser par 0 !!" << endl;
continue;
}
cout << " Le resultat est : " << res << endl;
system("Pause");
}
else
cout << " Vous n'avez pas rentrez (+;-;*;/). Veulliez recommencez !!" <<endl;
continue;
}
}
ce qui me dérange, c'est l'utilisation du while...
manifestement, tu connais le while vu que tu en utilise un
et tu l'utilise... pour rien (du moins de mon point de vue, si tu veux faire tourner ton programme en boucle, tu dois au moins autoriser une sortie propre, par exemple entrer q en opérateur)...
alors que 6 lignes plus bas tu utilise un if à la place d'un while pour assurer la saisie du bon opérateur (l'idée est de demander la saisie de l'opérateur jusqu'a ce que ça soit bon) avant de continuer le programme.
du coup, tu as moins besoin d'embriquer, et ton programme est plus facile à lire
manifestement, tu connais le while vu que tu en utilise un
et tu l'utilise... pour rien (du moins de mon point de vue, si tu veux faire tourner ton programme en boucle, tu dois au moins autoriser une sortie propre, par exemple entrer q en opérateur)...
alors que 6 lignes plus bas tu utilise un if à la place d'un while pour assurer la saisie du bon opérateur (l'idée est de demander la saisie de l'opérateur jusqu'a ce que ça soit bon) avant de continuer le programme.
du coup, tu as moins besoin d'embriquer, et ton programme est plus facile à lire
#include <iostream>
using namespace std;
#include <string>
void main (void)
{
int a,b,c,p,m,mu,d;
cout << " Bienvenue ! "
<< " Veuillez choisir le signe de l'operation (plus(p);moins(m);multiplier(mu);diviser(d)) "
<< endl;
cin >> c;
if (c=="p")
{
cout << "Veulliez choisir le chiffre a et le chiffre b" << endl;
cin >> a
>> b;
cout << "Le resultat est : " << a+b << endl;
}
if (c=="m")
{
cout << "Veulliez choisir le chiffre a et le chiffre b" << endl;
cin >> a
>> b;
cout << " Le resulat est : " << a-b << endl;
}
if (c=="mu")
{
cout << " Veulliez choisir le chiffre a et le chiffre b " << endl;
cin >> a
>> b;
cout << " Le resultat est : " << a*b << endl;
}
if (c=="d")
{
cout << " Veulliez choisir le chiffre a et le chiffre b " << endl;
cin >> a
>> b;
cout << " Le resultat est : " << a/b << endl;
}
}
Ça évite les copier-coller, et simplifie le programme