Está en la página 1de 6

APLICACIONES.

Notacin Polaca y Polaca Inversa.



Not aci n i nf i j a A+B C- D E*F G/ H

Di st i nci n ent r e ( A+B) *C y A+( B*C) Con par nt esi s y or den
de pr el aci n.

Not aci n Pol aca ( J an Lukasi ewi t z) ( Not aci n pr ef i j a)

+AB CD *EF / GH

Ej empl o:

( A+B) *C [ +AB] *C *+ABC
A+( B*C) A+[ *BC] +A*BC

( A+B) / ( C- D) [ +AB] / [ - CD] / +AB- CD

Not aci n Pol aca I nver sa ( Not aci n Post f i j a) .

AB+ CD- EF* GH/

Tampoco se necesi t an par nt esi s.
Un comput ador nor mal ment e convi er t e l a expr esi n i nf i j a en
post f i j a y despus cal cul a l a expr esi n. Ej empl o :
Cal cul ador a HP ut i l i za oper aci ones post f i j as.

Evaluacin de expresiones Postfijas.

5* ( 6+2) - 12/ 4

5* ( 6+2) - 12/ 4 5*[ 6, 2, +] - [ 12, 4, / ]
[ 5, 6, 2, +, *] - [ 12, 4, / ] 5, 6, 2, +, *, 12, 4, / , -


Pr ogr ama par a l a eval uaci n:

En el pr ogr ama pondr emos un val or cent i nel a par a saber
cuando acaba l a expr esi n. Por ej empl o un par nt esi s
der echo.

ALGORI TMO: Encuent r a el VALOR de una expr esi n ar i t mt i ca P
escr i t a en not aci n post f i j a.

1. Aadi r un par nt esi s der echo ) al f i nal de P
( cent i nel a) .
2. Exami nar P de i zq. A der . Y r epet i r l os pasos 3 y 4
par a cada el ement o de P hast a que se encuent r e el
cent i nel a.
3. Si se encuent r a un oper ando, poner l o en PI LA.
4. Si se encuent r a un oper ador ent onces:
a. Sacar l os dos oper ador es super i or es de PI LA, donde
A es el el ement o super i or y B el si gui ent e.
b. Eval uar B A.
c. Poner el r esul t ado de ( b. ) en PI LA.
5. Fi n del condi ci onal de 4.
6. Fi n del bucl e de 2.
7. Hacer VALOR i gual al el ement o super i or de PI LA.
8. Sal i r .



5, 6, 2, +, *, 12, 4, / , -

Smbolo examinado Pila
5 5
6 5, 6
2 5, 6, 2
+ 5, 8
* 40
12 40, 12
4 40, 12, 4
/ 40, 3
- 37
) Resul t ado
Pasar de notacin infija a postfija (O a Prefija en otros
casos.

ALGORI TMO: POLACA( Q, P) . Suponemos que Q es una expr esi n
ar i t mt i ca escr i t a en not aci n i nf i j a. Est e al gor i t mo
encuent r a su expr esi n post f i j a P.

1. - Met er "( " en PI LA y aadi r ") " al f i nal de Q.
2. - Exami nar Q de i zqui er da a der echa y r epet i r l os pasos 3
a 6 par a cada el ement o de Q hast a que l a PI LA est
vaci a.
3. - Si se encuent r a un oper ando, aadi r l o a P.
4. - Si se encuent r a par nt esi s i zqui er do, met er l o en PI LA.
5. - Si se encuent r a un oper ador ent onces:
( a) Repet i dament e sacar de PI LA y aadi r a P cada
oper ador ( de l a ci ma de PI LA) que t enga l a mi sma
pr ecedenci a o mayor que .
( b) Aadi r a PI LA.
[ FI N de condi ci onal ]
6. - Si se encuent r a un par nt esi s der echo, ent onces:
( a) Repet i dament e sacar de PI LA y aadi r a P cada
oper ador ( de l a ci ma de PI LA) hast a que se
encuent r e un par nt esi s i zqui er do.
( b) El i mi nar el par nt esi s i zqui er do ( no aadi r el
par nt esi s i zqui er do a P) .
[ Fi n de condi ci onal ]
[ Fi n del Bucl e del Paso 2]
7. - Sal i r .


EJ EMPLO:

A+( B*C- ( D/ Ef ) *g) *H
A+( [ BC*] - [ DEF/ ] *G) *H
A+( [ BC*] - [ DEF/ G*] ) *H
A+[ ( BC*DEF/ G*- H*) ]
ABC*DEF/ G*- H*+

S MBOLO EXAM. PI LA EXPRESI N P
A ( A
+ ( + A
( ( +( A
B ( +( AB
* ( +( * AB
C ( +( * ABC
- ( +( - ABC*
( ( +( - ( ABC*
D ( +( - ( ABC*D
/ ( +( - ( / ABC*D
E ( +( - ( / ABC*DE
( +( - ( /
ABC*DE
F
( +( - ( /
ABC*DEF
) ( +( -
ABC*DEF/
* ( +( - *
ABC*DEF/
G ( +( - *
ABC*DEF/ G
) ( +
ABC*DEF/ G*-
* ( +*
ABC*DEF/ G*-
H ( +*
ABC*DEF/ G*- H
)
ABC*DEF/ G*- H*+


Evaluar expresiones:

X=2, Y=5, Z=X+Y; obt ener Z
X=2, Y=5; Z=( ( ( Y- 1) / X) *( X+Y) )

Pr obl emas:
- Qu se eval a pr i mer o? - > ( par nt esi s) .
- Dnde guar damos r esul t ados i nt er medi os? - > En pi l as.

El pr oceso a segui r es t ener dos pi l as, una par a
oper andos y ot r a par a oper ador es, par a su r eal i zaci n es
necesar i o que est bi en par ent i zado, ya que, consi st e en
eval uar l a expr esi n y si encont r amos un par nt esi s
i zqui er do no hacemos nada, si es un oper ando l o pasamos a l a
pi l a de oper andos y si es un oper ador a l a de oper ador es, de
f or ma que cuando encont r emos un par nt esi s der echo, hay que
r eal i zar una oper aci n, cuyos oper andos y oper ador se
encuent r an en l as pi l as, y as sucesi vament e.
Si l a expr esi n no est r eal i zada con par nt esi s hay que
t ener r denes de pr el aci n y el al gor i t mo es un poco ms
di f ci l ( Ver Est r uct ur as de Dat os en J AVA de Wei ss) .

Ut i l i zamos pi l as por que necesi t amos al ber gar r esul t ados
i nt er medi os per o no sabemos cuant os. La sol uci n es ut i l i zar
pi l as.
** Copiar una pila en otra.

PROCEDURE Copi a( VAR P1: Pi l a; VAR P2: Pi l a) ;
VAR
e: Ti poEl ement o;
BEGI N
I F NOT EsVaci a( P1)
THEN
BEGI N
Ci ma( P1, e) ;
Desapi l ar ( P1) ;
Copi a( P1, P2) ;
Api l ar ( P1, e) ;
Api l ar ( P2, e)
END
ELSE
Pi l aVaci a( P2)
END;

** Teniendo una pila ponerla al revs.

PROCEDURE I nvi er t e( VAR P1: Pi l a; VAR P2: Pi l a) ;
VAR
e: Ti poEl ement o;
BEGI N
I F NOT EsVaci a( P1)
THEN
BEGI N
Ci ma( P1, e) ;
Desapi l ar ( P1) ;
Api l ar ( P2, e) ;
I nvi er t e( P1, P2) ;
Api l ar ( P1, e)
END
END;

También podría gustarte