You are on page 1of 5

Calculadora Java

Uso e implementacin de Pillas y notacin polaca inversa


Flores Cuevas Guillermo

Lozano Flores Diego Alberto

C.U. 150591
Ing. Meca trnica e Ing. Industrial

C.U. 148467
Ing. en Negocios y Direccin Financiera

AbstractLas calculadoras que utilizan la notacin


polaca inversa, RPN (Reverse Polish Notation) por sus
siglas en ingls, son capaces de resolver operaciones
extensas de manera rpida y eficiente puesto que la
notacin polaca funciona como un mtodo algebraico
alternativo al usado tradicionalmente. El objetivo del
proyecto fue desarrollar una calculadora con las
operaciones bsicas de: suma, resta, multiplicacin,
divisin y potencia; usando como mtodo algebraico la
RPN para el clculo de las expresiones recibidas. Java
Netbeans fue la plataforma donde se program la
calculadora la cual se bas principalmente por tres
mtodos; primeramente un mtodo que verificara la
validez de la expresin recibida, posteriormente un
segundo mtodo que recibiera la expresin (infija) y la
transcribiera a postfija (para hacer posible su clculo por
medio de la notacin polaca), finalmente un mtodo que
nos permitiera el clculo de dicha expresin postfija. Los
resultados claramente arrojaron que la notacin polaca es
un mtodo algebraico eficiente para el clculo de
expresiones matemticas sin necesidad del almacenamiento
de gran informacin dentro de la pila predefinida por Java
Netbeans. Estos resultados promueven el uso de la RPN en
el clculo de expresiones matemticas, dichos resultados
respaldan el uso de calculadoras basadas en el clculo de
expresiones postfijas.Keywordscomponent; formatting;
style; styling; insert (key words)

I.

INTRODUCCIN (NOTACIN POLACA


INVERSA)

La notacin polaca inversa, es un mtodo algebraico


alternativo de introduccin de datos. Fue
introducida en 1920 por el matemtico polaco Jan
Lukasiewicz; la notacin polaca inversa es conocida
por el orden en que se presentan los datos a calcular,
primeramente se encuentran los operandos y
posteriormente el operador que va a realizar los
clculos sobre ellos. El principio sobre el cual versa
el funcionamiento de esta notacin es el manejo de
los mismos dentro de una estructura LIFO (Last In
First Out), optimizando as el proceso de la

expresin. La RPN evala los datos introducidos de


manera inmediata, sin la necesidad (como lo es en
las notaciones infijas) de establecer un orden de
prioridad entre los operadores.
Ahora bien Edsger Dijkstra invent el algoritmo
shunting yard (patio de clasificacin) para convertir
expresiones de infijo a postfijo (RPN), nombrado
as porque su operacin se asemeja al de un patio de
clasificacin de ferrocarril. La expresin infija es la
forma ms comn que utilizamos para escribir
expresiones matemticas, estas notaciones presentan
el operador entre los operandos. La notacin infija
puede estar completamente parentizada o puede
basarse en un esquema de precedencia de
operadores as como el uso de parntesis para
invalidar los arreglos al expresar el orden de
evaluacin de una expresin. La notacin postfija
est estructurada de tal manera que los operandos
estn antes que el operador evitando la compleja
prioridad entre operadores proveniente de la
notacin infija.
En la computacin, la notacin de postfijo es
frecuentemente usada en lenguajes de programacin
concatenativos y basados en pila (por la naturaleza
de almacenamiento de la misma, LIFO). Tambin es
comn en sistemas basados en flujo de datos y
tuberas, incluyendo las tuberas de Unix
En cuanto a la historia en el mercado de las
calculadoras RPN: Friden, Incorporations introdujo
la notacin polaca inversa al mercado de las
calculadoras de escritorio con el EC-130 en el ao
1963. Los ingenieros de Hewlett-Packard (HP)
disearon una calculadora de escritorio en 1968. El
HP-35, la primera calculadora cientfica de mano
del mundo, usaba RPN en 1972.

Por
otra
parte
las calculadoras
programables soviticas (los modelos MK-52, MK61,B3-34 y el temprano B3-21)4 usaron el RPN
para el modo automtico y la programacin. Las
calculadoras rusas modernas MK-1615 y MK152,6diseadas y manufacturadas en Novosibirsk
desde 2007, son compatibles hacia atrs con ellos.
Su arquitectura extendida tambin se basa en la
notacin polaca reversa.
Nos posible la implementacin de una calculadora
RPN bsica dentro de la plataforma Java Netbeans
que permita la solucin de expresiones matemticas
complejas usando como fundamento la expresin
postfija y el clculo de la misma mediante la RPN.
II.

(a) Repetidamente sacar de P y aadir a S


cada operador (de la cima de P), hasta que
encuentre un (.
(b) Eliminar el ( de P (no aadir a S).
[Fin de condicional]
6.- Si se encuentra un OPERANDO
(2,23,6), aadirlo a S.
[Fin del Bucle]
7.- Salir.

MTODOS EXPERIMENTALES

La expresin que la calculadora percibe en un


principio se encuentra en notacin infija por lo que
es necesario un mtodo que nos permita
primeramente la verificacin de que dicha expresin
ha sido escrita correctamente, posteriormente un
mtodo que convierta esta notacin a una notacin
postfija (Vase Figura 1 y Figura 2). El algoritmo
para la conversin de una expresin infija a postfija
es:
EXPR = Expresin aritmtica notacin infija (Ej.:
2*(23+6)-1)
E = pila de entrada
P = pila temporal para los operadores
S = pila de salida
1.- Aadir ( al principio y ) al final de
EXPR. Seguidamente agregar uno a uno
todos los parmetros de EXPR a la Pila E.
(,2,*,(,23,+,6,),-,1,)
2.- Examinar E de izquierda a derecha y
repetir los pasos 3 a 6 para cada elemento de
E hasta que esta quede vaca.
3.- Si se encuentra (, meterlo en P.
4.- Si se encuentra un OPERADOR
(+,-,*,/,^) entonces:
(a) Repetidamente sacar de P y aadir a S
cada operador (de la cima de P) que tenga la
misma precedencia o mayor que el operador
de E.
(b) Aadir OPERADOR a P.
[Fin de condicional]
5.- Si se encuentra un ), entonces:

Ilustracin 1 Conversin de una expresin infija a notacin


postfija

Ilustracin 2 Expresiones infijas con su conversin


correspondiente a notacin postfija y su resultado.

Una vez obtenida la expresin postfija se realizaba


el clculo de la misma siguiendo el siguiente
algoritmo (Vase Ilustracion 3 y4):
1.
Separar la expresin postfija por
elementos
2.
Obtener dos operandos uno a uno y
almacenarlos en la pila al ser recibidos
3.
Obtener el operador, sacar los
operandos de la pila, de acuerdo al operador
recibido se realiza el clculo y el resultado
de este es almacenado nuevamente en la
pila.
4.
Se repiten los pasos 2 y 3 hasta que
ya no existan elementos en la expresin.
5.
Se retira el elemento guardado en la
pila puesto que este es el resultado de la
expresin.
`
6.
Fin
Ilustracin 4 Procesamiento del clculo de una expresin
postfija

III.

Ilustracin 3 Almacenamiento de elementos en una pila de


acuerdo a los clculos que se llevan a cabo en el
procesamiento de una expresin postfija.

RESULTADOS

El propsito de este proyecto era el desarrollo de


una calculadora RPN bsica usando la plataforma
Java Netbeans, en aos pasados este objetivo ya
haba sido completado de manera ms completa,
como las calculadoras cientficas de los soviticos o
las de los ingenieros Hewlett-Packard; en esta
ocasin en resultado no fue inesperado se cumpli
con el objetivo principal del proyecto puesto que se
logr implementar la calculadora en Netbeans, la
Ilustracin 5 muestra la calculadora implementada
en dicha plataforma. En efecto la calculadora
funciona en base al clculo de expresiones por
medio de la RPN y las realiza de manera eficiente.

el clculo de las expresiones matemticas recibidas,


entre las ventajas encontramos:
1. El clculo de expresiones postfijas se realiza
de manera secuencial de acuerdo al ingreso
de los operadores, sin la necesidad de recibir
la expresin completa (como lo es en el caso
de la notacin algebraica)
2. Se nos permiti el almacenamiento de
resultados intermedios para un uso posterior
de los mismos
3. El uso de memoria de almacenamiento es
mnimo en la pila puesto que los clculos se
realizan secuencialmente.
Por otra parte las desventajas del uso de esta
notacin principalmente versan sobre la adopcin
universal de la notacin algebraica, la cual hace
imprctico el conocimiento y desarrollo de la RPN.
Ilustracin 5 Calculadora programada en la plataforma
Java Netbeans

IV.

CONCLUISONES

Al finalizar el proyecto, determinamos que la


notacin polaca inversa presenta ventajas
destacables en cuanto al clculo de expresiones
complejas en comparacin a la forma tradicional de
procesamiento de dichas expresiones, nos referimos
al clculo de las mismas por medio de una notacin
infija. La notacin postfija present una facilidad en

REFERENCIAS
[1] Cosmico, C. (20 de Septiembre de 2012). Primeros pasos
para conversin notacin Infija a Postfija. Recuperado el
5
de
Noviembre
de
2015,
de
Blogger:
http://censorcosmico.blogspot.mx/2012/09/primerospasos-para-conversion-infijo.html
[2]

Anonimo. (3 de Noviembre de 2015). Wikipedia. Obtenido de Notacin


polaca inversa: https://es.wikipedia.org/wiki/Notacin_polaca_inversa

[3] Morris, M. M. (1987). Arquitecturas. Gijon: Santillana.


[4] WikiBooks. (20 de Octubre de 2013). Problem Solving:
Reverse Polish Notation. Recuperado el 4 de Noviembre
de 2015, de Wikibooks : https://en.wikibooks.org/wiki/Alevel_Computing/AQA/Problem_Solving,_Programming,
_Operating_Systems,_Databases_and_Networking/Proble
m_Solving/Reverse_Polish_Notation

You might also like