You are on page 1of 3

1.

Algoritmo para convertir de infija a postfija

op: datos de la operación


i: contador

1. INICIO
2. VAR i=0, a=0, c=0
3. Imprimir “Tamaño de la operación (operandos y operadores)”
4. Leer a
5. Dim Array opera[a]
6. Dim Array expresion[a]
7. Dim Array pila[a]
8. Hacer
9. Leer op
10. opera[i]=op
11. i=i+1
12. Mientras i<a
13. i=0
14. Hacer
15. SI opera[i]=’1’ o ‘2’ o ‘3’ o ‘4’ o ‘5’ o ‘6’ o ‘7’ o ‘8’ o ‘9’ o ‘0’
16. expresion[c]
17. c=c+1
18. FIN SI

Hasta aquí llegué, me falto comprender como ir comparando los operadores


2. Algoritmo para evaluar postfija

Pop: Desapilar
Push: Apilar
Cima: ultimo objeto apilado
i: Contador
Dim Array N[a]: Pila de Converti de Infija a Postfija
Op: Operadores

1. INICIO
2. Var i, Valor, C:Entero
3. Var Operador1, Operador 2: Entero
4. i=0; Operador1=0, Operador2=0;
5. Op1= +
6. Op2= -
7. Op3= *
8. Op4= /
9. Op5= ^
10. Dim Array N[a]:Entero
11. Hacer
12. Simbolo = N [i]
13. Si Simbolo == Op1 || Op2 || Op3 || Op4 || Op5
14. Operación = Simbolo
15. Si No
16. Operando1 = N[i]
17. Operando2 = N[i+1]
18. i=i+1
19. Valor= Operando 1 Operación Operando 2
20. C=C+Valor
21. Push(A, Valor)
22. i=i+1
23. Mientras i>a
24. Imprimir “Resultado =” C
25. FIN
3. Algoritmo para evaluar prefija

Pila A= Pila ordenamiento Prefija(Determinada)


Pila B= Pila para guardar Operandos
Push: Apila Elementos
Pop: Desapila elementos

1. INICIO
2. Var i, Valor, CimaA, CimaB , C:Entero
3. Var Operador1, Operador 2: Entero
4. i=0; Operador1=0, Operador2=0; CimaB=0
5. Op1= +, Op2= -, Op3= *, Op4= /, Op5= ^
6. Dim Arrya Z[a]
7. Pila B;
8. Pila A;
9. Hacer
10. Simbolo = cima A
11. Si Simbolo == Op1 || Op2 || Op3 || Op4 || Op5
12. Operación = Simbolo
13. Push (B, Simbolo)
14. Cima B= Cima B + 1, Cima A= Cima A - 1
15. Si No
16. Operando1 = Cima A
17. Operando2 = Cima (A-1)
18. Operación= pop(B, Cima)
19. Valor= Operando 1 Operación Operando 2
20. C=C+Valor
21. Cima A= Cima A - 2
22. i=i+1
23. Mientras Cima B>0
24. Imprimir “Resultado =” C
25. FIN

You might also like