Método para resolver fórmulas

Laura
16 de Mayo del 2005
Buenas noches a todos!

Estoy realizando un programa y no se pq tenia en la cabeza k no tendria ningun problema en hacer la parte de creacion de datos, el problema me surge cuando veo k necesito k de alguna manera el programa me resuelva una formula k el usuario ha puesto.

La classe Math me da funciones pero claro, yo ni idea lo k me pasarán, ni cuantos paréntesis ni nada,además el usuario puede crear variables asi por ejemplo tengo:

Usuario crea a= 5 o b= a + 3;
En la formula puede escribir : sqrt ( a + 5) * b , por ejemplo pero claro no se que me escribirá...

Yo supongo que esto estará resuelto...
alguien sabe???

Muchisimas gracias de antemano , de verdad.
En mi planificación no pensé en esto y si me he de crear una especie de compilador solo para esto, estoy perdida :S

axelopez
16 de Mayo del 2005
lo que deberias hacer es un tokenizador, para anlizar la sintaxis y crear el proceso para ejecutar las operaciones, pero al parecer no quieres hacer eso, no se si es alguna tarea del colegio, bueno yo en proyecto para corrugadora me tope con el mismo problema, necesitaba formulas para calcular cada tipo de caja de carton, pero es sencillo, utiliza una base de datos por ejemplo mysql solo que tiene un numero finito de variables, creas una tabla con esas variables, insertas en ellas por ejemplo
tabla variables
a,b,c,d,e
insert into variables values (1,2,3,4,5);
en el query del dataset escribes
"select "+formula+ " resultado from variables";

donde formula podes definir
a+b*c/e etc.
y te regresara en el campo resultado el valor

no se si te sirva pero si no quieres trabajar mucho puees tomar este camino

x
16 de Mayo del 2005
lo que necesitas es crear un tokenizador, para validar y reconocer las entradas del usuario. una vez que hayas reconocido la expresión (si es correcta) necesitas meter los operandos a una pila e ir usandolos poco a poco

Laura
16 de Mayo del 2005
Pero esto debe de estar hecho en source code por algun lado no?

Lo digo, pq si he de crear una especie de compilador solo para esto, no voy a poder acabar a tiempo... :(

Si alguién sabe de algun metodo k venga implementado se lo agradeceria muchísimo, me han comentado k en delphi si k existia algo exo, pero yo lo necesito en java :(

Muchas gracias de antemano, de verdad

Laura