Comment calculer "1+1*2"

Signaler
Messages postés
90
Date d'inscription
lundi 17 mars 2008
Statut
Membre
Dernière intervention
31 mars 2010
-
sheorogath
Messages postés
2465
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
-
Salut,

quelqu'un saurait comment calculer une chaine string, par ex "1+1*2" et donner le résultat, par ex 4

dans d'autres langages comme js ou php il suffisait de faire :

$valeur = eval("1+1*2"); pour donner le résultat : 4;

merci d'avance

PS: j'ai testé de faire une boucle mais c'est compliqué on dirait

1 réponse

Messages postés
2465
Date d'inscription
samedi 21 février 2004
Statut
Modérateur
Dernière intervention
29 janvier 2010
11
J'ai pas de code en java le faisant mais il y en a plusieurs sur le site.
Cherchee valuateur d'expression.

Sinon tu dois juste decouper ta chaine par morceaux selon les priorites des operateurs.
Tu dois commencer par les operateurs de faibles priorite, ca te donnera des sous expressions a evaluer de la gauche vers la droite.

Je te conseille d'ecrire une BNF pour t'aider a voir comment faire.


"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"