Questão de Algoritmos e Estrutura de Dados — Algoritmos — FGV 2023
- Código
- fg065336
- Banca
- FGV
- Órgão
- PGM - Niterói
- Ano
- 2023
- Nível
- Superior
- Cargo
- Analista de Tecnologia da Informação
- AA*BC*/D/E-
- BA+BC*D/E-
- CABC+*D/E-
- DABC+D*/E-
- EABCD/*+E-
GabaritoC — ABC+*D/E-
Gabarito: letra C. A conversão da expressão infixa A*(B+C)/D-E para a notação posfixa (RPN) resulta em ABC+*D/E-. Aplicando o algoritmo de shunting-yard, garante-se a precedência dos operadores e o agrupamento dos parênteses, sendo a alternativa C a que representa corretamente essa transformação.
A banca testa o domínio da conversão de expressões aritméticas para a notação pós-fixada. O processo consiste em percorrer a expressão infixa, utilizando uma pilha para os operadores, e gerar a saída com operandos na ordem original e operadores pospostos conforme a precedência. Vejamos cada alternativa:
A*BC*/D/E- — A sequência não respeita a prioridade dos parênteses. O operador * aparece antes de B e C, indicando que a multiplicação foi aplicada antes da soma, o que está errado.
A+BC*D/E- — O operador + é colocado antes do *, como se a adição fosse a primeira operação, mas na expressão original a multiplicação tem precedência sobre a adição (a menos que os parênteses indiquem o contrário).
ABC+*D/E- — Corresponde exatamente à conversão: operandos A, B, C; depois o operador + (soma de B e C), em seguida * (multiplicação do resultado por A), depois D, / (divisão do resultado anterior por D), e por fim E, - (subtração do resultado por E).
ABC+D*/E- — A sequência coloca D* antes da divisão, o que corresponderia a (A*(B+C)*D)/E, desrespeitando a precedência original da divisão sobre a subtração e a posição do D.
ABCD/*+E- — A ordem dos operandos e operadores não reflete a expressão infixa; ABCD/* indicaria uma divisão entre C e D precedida por B, o que não corresponde à estrutura original.
A banca explora a troca de ordem dos operadores, especialmente a colocação do + antes do * (como na alternativa B). Lembre-se de que, na ausência de parênteses, a multiplicação e divisão têm precedência sobre adição e subtração, mas os parênteses alteram essa ordem. A conversão correta sempre coloca o operador após seus operandos imediatos.
Gabarito: letra C
Link permanente: /questoes/fg065336