Probleme calculatrice c++
Fermé
roroo07
Messages postés
504
Date d'inscription
mercredi 30 juin 2010
Statut
Membre
Dernière intervention
14 avril 2014
-
17 juin 2011 à 14:12
roroo07 Messages postés 504 Date d'inscription mercredi 30 juin 2010 Statut Membre Dernière intervention 14 avril 2014 - 24 juin 2011 à 09:38
roroo07 Messages postés 504 Date d'inscription mercredi 30 juin 2010 Statut Membre Dernière intervention 14 avril 2014 - 24 juin 2011 à 09:38
A voir également:
- Probleme calculatrice c++
- Installer calculatrice sur mon portable - Télécharger - Calcul & Conversion
- Calculatrice gratuit - Télécharger - Calcul & Conversion
- Ma-calculatrice - Télécharger - Calcul & Conversion
- Calculatrice windows 7 - Télécharger - Calcul & Conversion
- E calculatrice ✓ - Forum calculatrices
4 réponses
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
Modifié par KX le 17/06/2011 à 14:23
Modifié par KX le 17/06/2011 à 14:23
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
dna.factory
Messages postés
25352
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
15 novembre 2024
1 613
Modifié par dna.factory le 17/06/2011 à 14:42
Modifié par dna.factory le 17/06/2011 à 14:42
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 !
roroo07
Messages postés
504
Date d'inscription
mercredi 30 juin 2010
Statut
Membre
Dernière intervention
14 avril 2014
15
17 juin 2011 à 14:55
17 juin 2011 à 14:55
je début c'est normal que je fasse des erreurs
roroo07
Messages postés
504
Date d'inscription
mercredi 30 juin 2010
Statut
Membre
Dernière intervention
14 avril 2014
15
17 juin 2011 à 15:05
17 juin 2011 à 15:05
je sais pas pour quoi le virtual c++ bug il veux plus ce lancer bien
dna.factory
Messages postés
25352
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
15 novembre 2024
1 613
17 juin 2011 à 15:25
17 juin 2011 à 15:25
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.
dna.factory
Messages postés
25352
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
15 novembre 2024
1 613
17 juin 2011 à 15:28
17 juin 2011 à 15:28
"je sais pas pour quoi le virtual c++ bug il veux plus ce lancer bien"
pas grave, fais ce qu'on t'a dis sur papier, on sera capable de te dire si c'est bon ou pas...
pas grave, fais ce qu'on t'a dis sur papier, on sera capable de te dire si c'est bon ou pas...
roroo07
Messages postés
504
Date d'inscription
mercredi 30 juin 2010
Statut
Membre
Dernière intervention
14 avril 2014
15
17 juin 2011 à 16:41
17 juin 2011 à 16:41
#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 ==
Wakyo
Messages postés
42
Date d'inscription
vendredi 17 juin 2011
Statut
Membre
Dernière intervention
10 avril 2013
1
17 juin 2011 à 17:02
17 juin 2011 à 17:02
#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;
}
Wakyo
Messages postés
42
Date d'inscription
vendredi 17 juin 2011
Statut
Membre
Dernière intervention
10 avril 2013
1
17 juin 2011 à 17:03
17 juin 2011 à 17:03
Ca devrait fonctionner, après pour rendre le code plus "propre", tu peux faire un switch () case ...
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
17 juin 2011 à 17:03
17 juin 2011 à 17:03
Franchement, ça aussi on sait faire... mais quel intérêt dans l'apprentissage ?
roroo07
Messages postés
504
Date d'inscription
mercredi 30 juin 2010
Statut
Membre
Dernière intervention
14 avril 2014
15
17 juin 2011 à 17:03
17 juin 2011 à 17:03
merci mais tu peux me dire a quoi sert string stp
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
17 juin 2011 à 17:04
17 juin 2011 à 17:04
Et c'est #include <string> car <cstring> manipule les char* en C
dna.factory
Messages postés
25352
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
15 novembre 2024
1 613
Modifié par dna.factory le 17/06/2011 à 17:14
Modifié par dna.factory le 17/06/2011 à 17:14
mes souvenirs de c++ sont vieux (10 ans), mais il manque pas l'affectation de Valeur1 et Valeur2... pardon a et b ?
roroo07
Messages postés
504
Date d'inscription
mercredi 30 juin 2010
Statut
Membre
Dernière intervention
14 avril 2014
15
21 juin 2011 à 17:51
21 juin 2011 à 17:51
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;
}
}
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
21 juin 2011 à 18:27
21 juin 2011 à 18:27
Dire que c'est "parfait" est un peu exagéré je trouve ;-)
Pour effacer la console Windows tu peux utiliser system("CLS");
Pour effacer la console Windows tu peux utiliser system("CLS");
roroo07
Messages postés
504
Date d'inscription
mercredi 30 juin 2010
Statut
Membre
Dernière intervention
14 avril 2014
15
21 juin 2011 à 18:37
21 juin 2011 à 18:37
ben c'est mon programme donc il est parfait pour moi lol ^^
merci pour la commande je vais l'intégrer dans mon programme
merci pour la commande je vais l'intégrer dans mon programme
dna.factory
Messages postés
25352
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
15 novembre 2024
1 613
21 juin 2011 à 21:27
21 juin 2011 à 21:27
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
roroo07
Messages postés
504
Date d'inscription
mercredi 30 juin 2010
Statut
Membre
Dernière intervention
14 avril 2014
15
22 juin 2011 à 12:51
22 juin 2011 à 12:51
sa fait pareil enfin pour moi parce que si le if n'est pas le bon il recommence
roroo07
Messages postés
504
Date d'inscription
mercredi 30 juin 2010
Statut
Membre
Dernière intervention
14 avril 2014
15
22 juin 2011 à 12:53
22 juin 2011 à 12:53
a oui il y a juste un truc j'arrive pas a mettre un autre variable a "a" et "b" car du coup la variable ne prend pas en compte les grand nombre ni les virgule donc j'aurai voulut mettre double mais quand je lance le debug il me dit que je peux pas
17 juin 2011 à 14:24
17 juin 2011 à 14:27
#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;
}
}
17 juin 2011 à 14:27
Ça évite les copier-coller, et simplifie le programme
17 juin 2011 à 14:29