bjr,
je cherche un alogo qui prend en entrée une expression arithmetique comme chaine de caracteres et renvoie la valeur numerique de cette expression en tenant compte des priorité:
. ()
. *
. +,-
exemple:
entrée = 2*((3+2)*(2+1))
sortie = 30
bjr,
je cherche un alogo qui prend en entrée une expression arithmetique comme chaine de caracteres et renvoie la valeur numerique de cette expression en tenant compte des priorité:
. ()
. *
. +,-
exemple:
entrée = 2*((3+2)*(2+1))
sortie = 30
Il s'agit donc de construire un évaluateur d'expression mathématique. Il existe beaucoup de librairies qui font cela.
En ce qui concerne la méthode utilisée, on sépare habituellement le problème en deux activités successives :
1. Parcourir la chaine de caractère afin de construire une modélisation de l'expression mathématique
2. Evaluer le modèle afin d'obtenir le résultat final
L'algorithme Shunting-yard est un exemple classique de solution.
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Dans le forum C, un Défi avait été lancé sur ce sujet et plusieurs algos ont aussi été proposés :
Forum C : defi 2 : réalisation d'un nterpreteur d'expression mathematiques
Partager