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
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 (http://www.tec-digital.itcr.ac.cr/revistamatematica/ContribucionesV7_n2_2006/Parseador/index.html)
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
¿Ya miraste el enlace? Allí el autor explica el proceso mientras codifica. Intenta adaptarlo a tus necesidades.
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.