Ver la segunda parte del articulo con código fuente disponible
Existen varias notaciones para representar expresiones aritméticas, que se diferencian en el orden en que se escriben los argumentos (operandos) de los operadores. Las más relevantes son:
Notación infija: La notación habitual. El orden es primer operando, operador, segundo operando.
Notación prefija: El orden es operador, primer operando, segundo operando.
Notación postfija: El orden es primer operando, segundo operando, operador.
Notación funcional: Se escribe el operador/función y despues, entre paréntesis, los operadores separados por comas.
La notación infija tiene el problema de que en expresiones con más de un operador existe ambiguedad sobre cual es el orden de evaluación. Por ejemplo, la expresión 8/4/2 se puede interpretar como (8/4)/2 o bien como 8/(4/2). Las otras notaciones no sufren este problema.
Un problema interesante en computación es poder convertir expresiones en notación INFIJA a su equivalente en notacion POSTFIJA.
Dada la expresión A+B se dice que está en notación INFIJA, y su nombre se debe a que el operador (+) esta entre los operadores (A y B).
La ventaja de usar expresiones en notación polaca postfija radica en que no son necesarios los paréntesis para indicar orden de operación, ya que este queda establecido por ubicación de los operadores con respecto a los operandos.
Para convertir una expresión dada en notación infija a una notación postfija, deberán establecerse previamente ciertas condiciones
Convertir de notacion infija a postfija
Pseudocódigo
1. Inicializar la pila
2. Repetir hasta que no haya caracteres en la expresión de
entrada
2.1 Leer un carácter de la expresión
2.2 Si es un operando se pasa a la expresión postfija de salida
2.3 Si el elemento es un operador distinto de ‘)’ entonces:
2.3.1 Si la pila está vacía se mete en la pila.
2.3.2 Si la pila NO está vacía
• Si la prioridad del operador es mayor que la prioridad del
operador de la cima de la pila ⇒ se mete en la pila
• Si la prioridad del operador es menor o igual que la prioridad
del operador de la cima de la pila ⇒ se saca el operador de la
cima y se coloca en la expresión postfija. Volvemos a 2.3
2.4 Si el elemento es el operador ‘)’ entonces:
2.4.1 Se sacan operadores de la pila hasta encontrar el paréntesis ‘(‘
que se elimina (las expresiones postfijas no llevan paréntesis)
3. Al finalizar el recorrido por la expresión aritmética se pasa todo
el contenido de la pila a la expresión postfija
Evaluar una expresion postfija para obtener su resultado
Pseudocódigo
1. Inicializar la pila
2. Repetir hasta que no haya caracteres en la expresión
a evaluar
2.1 Obtener el siguiente item de la expresión
2.2 Si el elemento es un operando se mete en la pila
2.3 Si el elemento es un operador (denominado &) entonces:
2.3.1 Se extraen los dos elementos superiores de la pila,
denominados Op2 y Op1 respectivamente.
2.3.2 Se evalúa el resultado de Op1 & Op2 y se almacena en Z
2.3.3 Se introduce Z en la cima de la pila
3. Obtener el valor de la expresión de la cima de la pila
¿Necesitas mas documentacion o informacion?
Puedes ir a los siguientes enlaces
Documentacion en pdf
Presentacion en PowerPoint
Visita nuestra pagina en Facebook


No hay comentarios:
Publicar un comentario