Gabarito Letra D
Na Notação Polonesa Reversa, ou Notação Pós Fixa, os operadores procedem os valores numéricos. Se a próxima instrução for um operando, então o coloca no topo da pilha. Se a próxima instrução for um operador, então retira-se os dois operandos do topo da pilha e faça a operação matemática com eles e retorna o valor para o topo da pilha.
Neste caso ficaria:
(AB + CAD * + * A + ) onde A=2, B=4, C= 5, D=3. Ou seja (24 + 523 * + * 2 + )
Primeira instrução é um operando (2) então empilha:
| 2 |
Próxima instrução é um operando (4) então empilha:
| 4 |
| 2 |
Próxima instrução é um operador (+) então desempilha os dois operandos e faz a operação matemática:
| 4 | > 4 + 2 = | 6 | (empilha o resultado)
| 2 |
Próxima instrução é um operando (5) então empilha:
| 5 |
| 6 |
Próxima instrução é um operando (2) então empilha:
| 2 |
| 5 |
| 6 |
Próxima instrução é um operando (3) então empilha:
| 3 |
| 2 |
| 5 |
| 6 |
Próxima instrução é um operador (*) então desempilha os dois operandos e faz a operação matemática:
| 3 | > 3 * 2 = | 6 | (empilha o resultado)
| 2 |............... | 5 |
| 5 |............... | 6 |
| 6 |
Próxima instrução é um operador (+) então desempilha os dois operandos e faz a operação matemática:
| 6 | > 6 + 5 = | 11 | (empilha o resultado)
| 5 |............... | 6 |
| 6 |
Próxima instrução é um operador (*) então desempilha os dois operandos e faz a operação matemática:
| 11 | > 11 * 6 = | 66 | (empilha o resultado)
| 6 |
Próxima instrução é um operando (2) então empilha:
| 66 |
| 2 |
Próxima instrução é um operador (+) então desempilha os dois operandos e faz a operação matemática:
| 66 | > 66 + 2 = | 68 | (empilha o resultado)
| 2 |