Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — CESPE / CEBRASPE 2022

Algoritmos e Estrutura de DadosAlgoritmos
Código
ce133696
Banca
CESPE / CEBRASPE
Órgão
BNB
Ano
2022
Nível
Superior
Cargo
Analista de Sistemas - Desenvolvimento de Sistemas
A respeito dos conceitos de função e avaliação de expressões, julgue o item subsequente.Considere o algoritmo a seguir.a = 5b = 55c = 555maior = ase maior > b entãomaior = bsenãose maior > c entãomaior = cmenor = cse menor < a entãomenor = asenãose menor < b entãomenor = boutro = a + b + c - maior - menorescreva(maior)escreva(menor)escreva(outro)O resultado correto da execução do algoritmo precedente será o seguinte.555555.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Algoritmo: avaliação de expressões e fluxo condicional

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.

Simulação passo a passo

  1. a = 5, b = 55, c = 555

  2. maior = amaior = 5

  3. 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.

  4. menor = cmenor = 555

  5. 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.

  6. outro = a + b + c - maior - menor = 5 + 55 + 555 - 5 - 555 = 55

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

Por que o algoritmo falha?

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

  1. 1a=5, b=55, c=555
  2. 2maior = a = 5
  3. 35 > 55? Falso → senão
  4. 45 > 555? Falso → maior=5
  5. 5menor = c = 555
  6. 6555 < 5? Falso → senão
  7. 7555 < 55? Falso → menor=555
  8. 8outro = 5+55+555-5-555 = 55
  9. 9Saída: 5, 555, 55
LEVEL · soulevel.com.br
NÃO CAIA NESSA!

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