duda con expresion posfija

Iniciado por m@o_614, 20 Noviembre 2014, 06:10 AM

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

m@o_614

Saludos

Tengo la siguiente expresión infija que dice:

(i730 + sg2LQ) + ((+G0 / (3064 + 68324.06)) / 28)

y utilice VARIOS programas que hacen conversiones de infija a posfija y viceversa, y esos programas me dicen que la respuesta es:

i730 sg2LQ + G0 3064 68324.06 + /+ 28 / +

pero me dijeron que era

i730 sg2LQ + G0 + 3064 68324.06 + / 28 /

y la verdad no se cuál de los dos es el correcto???

gracias

DarK_FirefoX

Tomé tu expresión que era:

Citar(i730 + sg2LQ) + ((+G0 / (3064 + 68324.06)) / 28)

y la convertí en

Citar(2+3)+((+4/(5+6))/7)

para mayor claridad.

Este es el resultado que me dio:

Citar2 3 + 4 5 6 + / 7 / +

Si te das cuenta creo que tu respuesta está bien, aunque difiere de la mia pues entre ".../7/..." la tuya pone un + antes del 7, lo cual creo que está bien.

Mi respuesta la obtuve utlizando el Algoritmo Shunting Yard, puedes buscar información sobre ello. No te pongo el algoritmo, porque lo puedes encontrar donde sea y programarlo.

PD: Me trajo recuerdos de un proyecto que hice donde desarrollé un Evaluador de Expresiones en lenguaje ensamblador y tuve que implementar el Algoritmo Shunting Yard en lenguaje ensamblador utilizando Emu8086. De hecho para hacer la conversión para darte respuesta, compilé el proyecto y le hice "debug" en el Emu8086 para ver como quedaba la notación posfija.