Edwin,
Aqui hay una explicación y un algoritmo que te puede servir mucho más que un
ejemplo de codigo.
Expresiones Algebraicas: Prefija, Infija, y Postfija
Si el lector tiene conocimientos acerca de Expresiones Algebraicas en forma
prefija, infija, y postfija, entonces puede saltarse esta sección y
continuar con la sección 4. Algoritmo: Pasar de Infija a Postfija.
Las expresiones algebraicas que usamos en el mundo occidental son las
llamadas infijas. Esto quiere decir que los operadores están colocados entre
medias de dos operandos. Por ejemplo, "2+3". "2" y "3" son operandos y "+"
es el operador, el cual está situado entre los operandos.
Las expresiones de forma prefija y postfija siguen la misma lógica que la
infija, excepto que la prefija sitúa el operador antes (pre-) de los dos
operandos y postfija, detrás (post). En el ejemplo anterior, "2+3", la
expresión en forma prefija sería "+23", y en forma postfija, sería "23+".
Otro ejemplo más complejo:
Infija: 2*3+9/3 = 6+9/3 = 6+3 = 9
Prefija: +*23/93 = +6/93 = +63 = 9
Postfija: 23*93/+ = 693/+ = 63+ = 9
La forma de convertir de infija a prefija o postfija es relativamente
simple:
1. Se dejan los números en la misma colocación: 2 * 3 + 9 / 3
2. Se "borran" los operadores: 2 3 9 3
3. Ahora se colocan los operadores a la derecha (prefija) o izquierda
(postfija) de los operandos. Para prefija: + * 2 3 / 9 3, y para postfija: 2
3 * 9 3 / +
Las ventajas de tener una expresión algebraica en prefija o postfija en vez
de infija son:
* Evaluando una expresión en forma prefija se asemeja a programar en
ensamblaje: <instrucción> <operando1> <operando2>
* Evaluando una expresión en forma postfija es más fácil a la hora de
implementar analizadores de lenguajes, calculadoras (como veremos pronto),
etc..
* Las formas prefijas o postfijas no contienen paréntesis, como los
suele tener la forma infija. Ejemplo:
Infija: 2*(3+9)/3 = 2*12/3 = 24/3 = 8
Prefija: /*2+393 = / * 2 12 3 = / 24 3 = 8
Postfija: 239+*3/ = 2 12 * 3 / = 24 3 / = 8
La ventaja de la forma infija es que es más sencilla de dictar, ya que es
más lógica (al menos para nosotros humanos) que las formas prefijas y
postfijas. Estas dos últimas formas necesitan tener la expresión entera
antes de poder evaluar, mientras que la infija suele ser evaluada a medida
que se vaya obteniendo información. Hay quizá otra ventaja al usar la forma
infija, los operadores separan una agrupación de dígitos de otra; así es más
fácil de leer los números, que las formas prefijas y postfijas.
saludos,
--
William Hernández
VFP9 SP2/Vista Bussines
Santiago, Chile.
Post by PedroPostea el ejemplo de C++ aqui que seguro te lo traducimos a VFP.
Post by Edwin DuranEstimado amigos
un compañero de la uni tine una tarea y el profesor la quiere en
visualfoxpro, he visto mucho ejemplo en C++ y java y no entiendo nada he
buscado en san google algun algoritmo pero nada, si tienen lago favor de
pasarlo
gracias