Pb calcul avec un string

nicboi Messages postés 20 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 28 mars 2006 - 8 mars 2004 à 19:59
nicboi Messages postés 20 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 28 mars 2006 - 9 mars 2004 à 17:51
Salut

je cherche a faire un calcul a partir d'un string du style "10+12*52/36-4" sans tenir compte des priorite d'operation.
Existe t'il une fonction java dans math ou autre pour faire ceci.

Merci,
++

8 réponses

cs_Duss Messages postés 890 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 29 juillet 2004 11
8 mars 2004 à 22:26
salut,
je ne sais pas si y a une fonction toute faite mais sinon tu parse char par char et quand tu trouve un operateur tu clacule
Duss
0
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
9 mars 2004 à 08:42
oui, en gros tu te montes un compilo d'instructions executables type polonaise "light"...
petit boulot...mais chiant....
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
9 mars 2004 à 09:17
:big) Neodante :big)

Pas forcément polonais pour faire cela mais c'est le simple quand même ...
Il va te falloir créer une pile (parsing de ta chaine) avec pour chaque élément de ta pile, une opération à faire ... ici une seule puisque tu n'as pas de parenthèses ... ensuite tu repères les opérations prioritaires (* / % par exemple) que tu calcules en prenant les valeurs par la méthode parseType des classes enveloppes par exemple ... et tu fais ça pour toute ta pile ... normalement y a pas beaucoup de boulot ... quand on est familiarisé avec la structure pile ... :-p
@+

[Responsable www.neogamedev.com]
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
9 mars 2004 à 09:18
:big) Neodante :big)

Connais pas de fonction qui le fait !!! Mais avec la tonne de classe qu'il y a il doit y en avoir une : mais ou chercher ???
@+

[Responsable www.neogamedev.com]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dmaillet Messages postés 500 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 11 juillet 2007
9 mars 2004 à 09:27
Non, je ne connais pas non plus de classe qui fais ca,
mais pour qqu'un qui a fait un peu de compilation et monte un compilo, ca va vite!!! Je dois avoir un bon vieux code de polonaise inverse qui traine, mais ou...
0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
9 mars 2004 à 10:04
Salut,

on en trouve plein sur le net.
Formula : http://www.japisoft.com/formula/index.html
eTeks : http://www.eteks.com/jeks/en/ voir la classe CalculatorParser
....
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
9 mars 2004 à 10:11
:big) Neodante :big)

Yes pourquoi je n'y avais pas pensé à JEKS c'est le prog d'un de mes profs et j'ai un peu de boulot à faire dessus cet été ... m'enfin quand je disais une classe je parlais de classe du core J2SE ... en revanche connais pas japisoft ... je vais aller voir !
@+

[Responsable www.neogamedev.com]
0
nicboi Messages postés 20 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 28 mars 2006
9 mars 2004 à 17:51
merci a tous

ouai, j'avais deja fait l'automate (y verifait si la chaine etait valide)
mais pour le traitement je voulais faire au plus simple ;)
tant pi je vai faire le traitement au fur et a mesure dans l'automate

++
0
Rejoignez-nous