Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/05/2009, 10:30
mariano_donati
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 1 mes
Puntos: 9
Respuesta: Reconocer expresion

Hace un tiempo realice un pequeño programa que utilizaba una sintaxis similar para evaluar expresiones de este tipo. Lo primero que te aconsejo que hagas es no tener en cuenta la variable x. Realiza un programa que te resuelva expresiones del tipo 2+(4*9)/8. Una vez que tenes resuelto este problema (que en realidad es el problema principal al que te vas a enfrentar) de alguna manera le pides al usuario que defina que variables van a ser validas en la expresion y que valor les quiere dar, luego reemplazas en la cadena de la expresion esta variable por el valor que le asigno el usuario. Aca te recomiendo que busques una sintaxis que sea facil de parsear para poder analizar que variables son validas.
Para resolver el problema de analizar una expresion matematica y reducirla hasta que esta se transforme en un solo numero (el resultado), te recomiendo que leas notacion posfija.
Otro modelo que podes seguir (pero que es basicamente lo mismo) tener una pila de operadores y otra pila de operandos. De acuerdo a si la expresion esta entre parentesis, a las reglas de precedencia de los operandos, si la funcion es de un solo operando, etc vas resolviendo estas pilas.
No es tarea facil. Pero es un tema muy interesante para que al menos valga el intento.

Te recomiendo que empieces a hacer algo de codigo y cuando te empieces a trabar en algun lado postees las dudas aca que seguramente alguien va a responderte.
Te paso mi e-mail por cualquier otra duda es [email protected].
Saludos.
__________________
Add, never Remove