Salut.
Je veux savoir le code necessaire pour donner la valeur numérique d'une formule mathématique de type string ou char*, ou les seuls opérateurs trouvés sont + - * /. Exemple: 8/7+(74+1)*7-(5*7)/18.
Merci.
Salut.
Je veux savoir le code necessaire pour donner la valeur numérique d'une formule mathématique de type string ou char*, ou les seuls opérateurs trouvés sont + - * /. Exemple: 8/7+(74+1)*7-(5*7)/18.
Merci.
Boost.Spirit: y a un exemple tout fait qui fait ça tres bien.
vous pouvez me donnez un lien svp? merci
Salut, et bienvenue sur le forum.
Le principe est de créer un "parser" qui va créer un "arbre binaire logique" représentant l'expression à évaluer.
Les noeuds reprennent les différents opérateur, et les feulles reprennent les opérandes gauche et droite.
Une fois l'arbre binaire créer, il devient alors "facile" de calculer le résultat
Il peut être sympa de s'amuser à créer un tel parseur, pour "la culture générale", et nous t'y aiderons si tu le souhaite, mais il faut avouer que c'est quand même se faire du mal pour pas grand chose car il existe une bibliothèque qui nous permet de générer des parsers très facilement: boost.tokenizer
EDIT grillé... le temps de sortir mon emmerdeuse![]()
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
merci bien pour les infos. je veux bien créer moi meme cet arbre binaire, mais je crois que j'aurai besoin d'aide, donc si vous pouvez, donnez moi un exemple ou un tutrial sur ce type d'evaluation numerique.
http://www.boost.org/doc/libs/1_43_0...alc6/calc6.cpp
en 10s sous google ...
j'ai pas l'authorisation d'utiliser la bibliotheque boost dans mon projet. J'aime bien si quelqu'un me dit comment construire mon arbre binaire pour evaluer la formule. merci une autre fois.
merci
Partager