Fonction addition en C++
Discutez d'informatique ici !
-
nxthunder
- Membre Relatif
- Messages: 224
- Enregistré le: 30 Juin 2005, 10:16
-
par nxthunder » 13 Juil 2006, 19:10
Bonjour,
Programmant en C++, je me suis lancé ds la création d'une calculette sous DOS.
Mais je me heurte a un problème voici mon code :
- Code: Tout sélectionner
#include
using namespace std;
int main()
{
int a;
cout>a;
cout>c;
cout<<"+"<<endl;
}
// Comment faire pour obtenir le résultat ? faire plutot un tableau pour appeler ensuite toutes les cellules ?
system("Pause");
return 0;
}
Le problème est que je n'arrive pas a obtenir un résultat final : Je ne sais pas vraiment comment m'y prendre, soit créer une fonction
Du style là :
- Code: Tout sélectionner
int_funcadd(int a );
{
int a;
a=a+a;
return a;
}
Ou bien créer un tableau qui s'aggrandit + ou - en fonction du nombre de chiffres qu'il y a à additioner.
Que me conseillez vous ?
Ps : Mon logiciel est DevC++
-
mln
- Membre Relatif
- Messages: 131
- Enregistré le: 20 Avr 2006, 14:05
-
par mln » 13 Juil 2006, 19:47
Bonjour,
je te laisse gérer les biblio ca fait longtemps que j'ai pas utiliser C++
[CODE]
#include
using namespace std;
int main()
{
int a,s,c;
s=0;
cout>a;
cout>c;
s=s+c;
if ((b+1)>c;
s=s+c;
if ((b+1)>a;
cout<<"Entrez vos nombres:"<<endl;
s=addition(s,a);
cout<<"le resultat est"<<s<<endl;
system("pause");
return 0;
}
Bon courage
-
Patastronch
- Membre Irrationnel
- Messages: 1345
- Enregistré le: 23 Aoû 2005, 00:53
-
par Patastronch » 13 Juil 2006, 19:55
Généralement on utilise une pile pour ce genre de problèmatique.
Mais pour une calculatrice une structure d'arbre binaire serait l'idéal je pense :
Par exemple ton expression tu la transformes en une expression préfixée (ex : (a+b)*(c+d) deviens *(+(a,b),+(c,d))) , et tu parcours ton arbre en partant des feuilles jusqu'a la racine.
l'arbre de l'exemple entre parenthese sera donc :
*
|\
++
|\|\
abcd
comme je sens venir la question :
Pour l'implémentation de la structure de ton arbre,
Fait un objet noeudOperation pour chaque opération (+,-,*,/ et les autres que t'aimerais ajouter) avec pour attibut : 2 pointeur vers des noeuds et comme méthode l'opération qu'il permet d'effectuer.
Fait un objet noeudValeur avec pour atribut : la valeur de ton noeud.
Ainsi l'arbre de dessus sera :
un noeudMultiplication qui pointe vers deux noeudPlus.
Un noeudPlus qui pointe vers un noeudValeur a et un noeudValeur b.
Un second noeudPlus qui pointe vers un noeudValeur c et un noeudValeur d.
l'interet de cette méthode d'implémentation (autre que la rapidité qui est inutile pour un programme aussi peu complexe ) est qu'elle te permet d'ajouter simplement des fonctionnalités à ta calculatrice et que le code sera correcte d'un point de vue sémentique.
-
nxthunder
- Membre Relatif
- Messages: 224
- Enregistré le: 30 Juin 2005, 10:16
-
par nxthunder » 13 Juil 2006, 19:57
Merci Bcp cest pil poil ce qu'il me fallait !!!!
Encore un grand merci
-
nxthunder
- Membre Relatif
- Messages: 224
- Enregistré le: 30 Juin 2005, 10:16
-
par nxthunder » 14 Juil 2006, 09:27
Je pense qu'il serait plus judicieux d'utiliser des flottants et non des entiers.
- Code: Tout sélectionner
#include
#include
using namespace std;
double addition(double s,int a)
{
double c;
for(int b=0;b>c;
s=s+c;
if ((b+1)>a;
cout<<"Entrez vos nombres:"<<endl;
s=addition(s,a);
cout<<"="<< s<<endl;
system("pause");
return 0;
}
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités