Foro de elhacker.net

Foros Generales => Dudas Generales => Mensaje iniciado por: m@o_614 en 20 Noviembre 2014, 06:10 am



Título: duda con expresion posfija
Publicado por: m@o_614 en 20 Noviembre 2014, 06:10 am
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


Título: Re: duda con expresion posfija
Publicado por: DarK_FirefoX en 20 Noviembre 2014, 06:58 am
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:

Citar
2 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.