← Questões de Algoritmos e Estrutura de Dados

Algoritmos e Estrutura de Dados · FGV · 2023

Questão comentada de Algoritmos e Estrutura de Dados

No contexto da construção de compiladores para linguagens de programação, o uso da notação polonesa posfixa é comum quando é necessário representar expressões aritméticas, como a que segue. A*(B+C)/D-E A expressão correta na referida notação é:

Gabarito: C

A notação polonesa posfixa coloca a operação depois dos operandos. Em vez de escrever primeiro o sinal, você escreve os valores e só depois o operador correspondente. Isso é muito útil em compiladores e interpretadores porque elimina ambiguidades de precedência e parenteses, deixando a leitura da expressão por uma máquina bem mais direta. Na expressão A*(B+C)/D-E, a primeira operação dentro dos parenteses é B+C, que vira BC+. Depois, esse resultado é multiplicado por A, formando ABC+*. Em seguida, divide-se por D, ficando ABC+*D/, e por fim subtrai-se E, chegando a ABC+*D/E-. Perceba a lógica: cada operador aparece somente depois de seus dois operandos. Isso é exatamente a marca da notação posfixa. Se você tentar manter a ordem “tradicional” da expressão no meio do caminho, quase sempre cai em alternativa com operador adiantado ou com a sequência dos operandos bagunçada. Por isso, o gabarito é a letra C. Ela respeita a estrutura da expressão original e traduz corretamente cada etapa da prioridade operacional: parenteses, multiplicacao/divisao e, por ultimo, subtracao.

Continue treinando

Questões relacionadas