Comment calculer "1+1*2"

sikove Messages postés 90 Date d'inscription lundi 17 mars 2008 Statut Membre Dernière intervention 31 mars 2010 - 28 déc. 2009 à 09:02
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 - 28 déc. 2009 à 10:24
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

sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
28 déc. 2009 à 10:24
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"
0
Rejoignez-nous