Questão de Algoritmos e Estrutura de Dados — Algoritmos — CESPE / CEBRASPE 2022
- Código
- ce133696
- Banca
- CESPE / CEBRASPE
- Órgão
- BNB
- Ano
- 2022
- Nível
- Superior
- Cargo
- Analista de Sistemas - Desenvolvimento de Sistemas
- CCerto
- EErrado
GabaritoE — Errado
❌ ERRADO. A afirmação está incorreta porque a execução do algoritmo não produz a saída 555, 5, 55. Devido a falhas na lógica das estruturas condicionais, os valores de maior e menor são atribuídos incorretamente, gerando a saída 5, 555, 55.
a = 5, b = 55, c = 555
maior = a → maior = 5
Primeiro se: maior > b? (5 > 55?) → Falso. Executa o bloco senão.
Dentro do senão: se maior > c então maior = c (5 > 555?) → Falso. Nada é alterado. maior continua 5.
menor = c → menor = 555
Segundo se: menor < a? (555 < 5?) → Falso. Executa o bloco senão.
Dentro do senão: se menor < b então menor = b (555 < 55?) → Falso. menor continua 555.
outro = a + b + c - maior - menor = 5 + 55 + 555 - 5 - 555 = 55
Saída das instruções escreva:
escreva(maior) → 5
escreva(menor) → 555
escreva(outro) → 55
Portanto, a sequência impressa é 5, 555, 55, e não 555, 5, 55 como afirmado.
Para encontrar o maior: Após definir maior = a, a primeira condição testa se maior > b. Como a é menor que b, a condição é falsa, e o senão é executado. Dentro dele, testa-se maior > c (5 > 555?), que também é falsa. Assim, maior nunca é atualizado para o valor correto (555). Para corrigir, a comparação deveria ser "se maior < b" (ou b > maior), e o mesmo para c.
Para encontrar o menor: De forma análoga, menor é inicializado com c (555), e as comparações seguintes (menor < a e menor < b) são ambas falsas, deixando menor incorreto (deveria ser 5).
A banca explora a confusão entre os operadores de comparação (> no lugar de <) e a estrutura aninhada do senão. O aluno pode simular mentalmente de forma apressada e acreditar que o algoritmo funciona, mas a execução cuidadosa revela os erros.
💡 Dica: Em algoritmos de busca de maior/menor, sempre compare o candidato atual com cada elemento, atualizando quando o elemento for maior que (para o maior) ou menor que (para o menor). Um padrão seguro é:
maior = a; se b > maior então maior = b; se c > maior então maior = c.
menor = a; se b < menor então menor = b; se c < menor então menor = c.
❌ ERRADO. O resultado correto da execução não é 555, 5, 55, mas sim 5, 555, 55.
Link permanente: /questoes/ce133696