You are on page 1of 2

Algoritmo Notacin Polaca Inversa (RPN)

El algoritmo que utilizan las calculadoras RPN es relativamente simple:

Si hay elementos en la bandeja de entrada


Leer el primer elemento de la bandeja de entrada. Si el elemento es un operando. Poner el operando en la pila. Si no, el elemento es una funcin (los operadores, como "+", no

son ms que funciones que toman dos argumentos). Se sabe que la funcin x toma n argumentos. Si hay menos de n argumentos en la pila (Error) El usuario no ha introducido suficientes argumentos en la expresin.

Si no, tomar los ltimos n operandos de la pila. Evaluar la funcin con respecto a los operandos.

Introducir el resultado (si lo hubiere) en la pila. Si hay un slo elemento en la pila

El valor de ese elemento es el resultado del clculo. Si hay ms de un elemento en la pila


(Error) El usuario ha introducido demasiados elementos.

Ejemplo
La expresin algebraica 5+ ((1+2)*4)-3 se traduce a la notacin polaca inversa como 5 1 2 + 4 * + 3 - y se evala de izquierda a derecha segn se muestra en la siguiente tabla. La "Pila" es la lista de los valores que el algoritmo mantiene en su memoria despus de realizar la operacin dada en la segunda columna.

Entra

Operacin Introducir en la pila Introducir en la pila Introducir en la pila


Suma Introducir en la pila Multiplicacin

Pila

Comentario

5, 1

5, 1, 2
Tomar los ds ltimos valores de la pila (1, 2) y sustituirlos por el resultado (3)

+ 4 *

5, 3 5, 3, 4 5, 12

Tomar los dos ltimos valores de la pila (3, 4) y sustituirlos por el resultado (12) Tomar los ds ltimos valores de la pila (5, 12) y sustituirlos por el resultado (17)

+ 3

Suma Introducir en la pila Resta

17 17, 3 14

Tomar los dos ltimos valores de la pila (17, 3) y sustituirlos por el resultado (14).

You might also like