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.
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
merci
Salut.
J'ai vu aujourdhui la solution proposée par monsieur Jean-Marc sur l'interpreteur d'expression mathematique (http://www.developpez.net/forums/d38...mathematiques/), et je l'ai apprécié beaucoup. Sauf que je veux bien savoir comment peut-on amélliorer le code pour interpreter une telle expression: [2,8]+4-10*[4,8] ou [2,8] designe les coordonnées d'une cellule d'un tableau qu'on a deja rempli.
Merci bien pour votre aide.
Modifie eval_factor pour traiter ta syntaxe [].
(Et ne pose pas de questions techniques par MP, et ne pose pas la même question sur deux fils)
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
je suis désolé, mais je suis nouveau dans le forum et je ne sais pas encore tous les reglements. en tout cas, j'ai fait ce que vous m'avez dit, mais j'ai pas reussi.![]()
enfn, j'ai reussi!l faut aussi definir l'operateur "," avec * et /. En tt cas, merci beaucoup pour votre aide.
a bientot.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager