Operaciones aritmeticas de una ristra con recursividad

Iniciado por Javator, 21 Marzo 2014, 16:20 PM

0 Miembros y 1 Visitante están viendo este tema.

Javator

Hola:

Estoy intentando hacer por recursividad un codigo en el que recibo una ristra con una operacion aritmetica "((-75)-(180))*((8)+(2))".

Estoy utilizando StringUtils.exprMainOperator para saber la posicion del operando principal, pero me hago un lio.

Tengo claro que el caso base es cuando no hay un operando, o sea cuando se recibo un numero solo.

Luego tendia que recorrer la ristra hasta el numero o el signo ¿no?
¿Que operacion hay que hacer primero? ¿Las pequeñas de los extremos no?

a partir de ahi me pierdo.

Saludos y Gracias

Mitsu

Hola, pues bonito algoritmo tienes que hacer para poder interpretar las expresiones matemáticas. Los factores más importantes son las notaciones infija y postfija según un enlace que encontré.

Aquí te dejo el enlace que explica paso a paso cómo hacer un evaluador de expresiones matemáticas complejas. Además, el autor deja el código fuente en Java. Salu2.

Enlace: Evaluador de expresiones matemáticas en Java

Javator

Hola, gracias por contestar,

Pues la verdad es que si, es una tanto lioso, y hacerlo por recursividad lo complica aun mas.

Por ahora tengo claro que el caso base es cuando no hay un operando, o sea cuando se recibo/se queda un numero solo.

Luego tendria que recorrer la ristra hasta el numero o el signo

La duda es que operacion hacer primero una vez que capturo los operandos y numeros y los extraigo.

Luego creo que con un switch, haria la operacion segun el signo.

He hecho un millon de bocetos y el netbeans se rie de mi cada vez que los pruebo ;D

Mitsu

¿Ya miraste el enlace? Allí el autor explica el proceso mientras codifica. Intenta adaptarlo a tus necesidades.

1mpuls0

Coloca tu código!

Menciona exactamente en que te estas quedando!

@Mitsu
Ese evaluador de expresiones parece más complejo que el mio.. :O no recuerdo si lo compartí en este foro.
Pero tenia un analizador, lexico, semántico y sintáctico xD. Solo tenía un pequeño fallo que descubrí después de haberlo entregado para la materia, echare un ojo a ver que tal va este que mencionas.

Saludos.
abc