SóProvas


ID
961021
Banca
Marinha
Órgão
Quadro Técnico
Ano
2011
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Assinale a opção que apresenta o valor final da expressão (AB + CAD * + * A + ) representada na forma Polonesa Reversa, onde: A=2, B=4, C= 5, D=3.

Alternativas
Comentários
  • (AB + CAD + + 4 A + )

    (A + B) * (C + (A * D)) + A
    (2 + 4) * (5 + (2 * 3)) + 2 = 68

  • 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 |