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
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
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