Fonction addition en C++

Discutez d'informatique ici !
nxthunder
Membre Relatif
Messages: 224
Enregistré le: 30 Juin 2005, 10:16

Fonction addition en C++

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;
}

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite