Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — FGV 2026

Algoritmos e Estrutura de DadosAlgoritmos
Código
fg130040
Banca
FGV
Órgão
AMAZUL
Ano
2026
Nível
Médio
Cargo
Técnico de Informática
Um algoritmo deve solicitar números ao usuário repetidamente até que ele digite zero. Todos os valores positivos informados devem ser somados antes do término.A estrutura de repetição correta para implementar esse comportamento é chamada de
  1. Alaço repita–até (teste no final).
  2. Bestrutura condicional simples.
  3. Cestrutura sem repetição.
  4. Dlaço com teste no início (enquanto).
  5. Econdicional múltipla (switch/case).
Revelar gabarito e comentário

GabaritoA — laço repita–até (teste no final).

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

Estruturas de Repetição: Laço com Teste no Final

Gabarito: letra A. O comportamento descrito — solicitar números repetidamente até que o usuário digite zero, somando os positivos — é implementado de forma mais direta por um laço do tipo repita–até (teste no final), que garante a execução do corpo pelo menos uma vez e repete até que a condição de parada (digitar zero) seja satisfeita. Essa estrutura é conhecida como repeat-until em linguagens como Pascal ou do-while em C/Java.

A banca testa o conhecimento sobre os tipos de laços: com teste no início (enquanto) e com teste no final (repita–até). A diferença crucial é que no teste no final o bloco sempre é executado ao menos uma vez, o que se encaixa perfeitamente no problema — não é necessário ler o primeiro número fora do laço. Enquanto isso, um laço com teste no início exigiria uma leitura inicial extra ou uma condição especial.

Estruturas de repetição
  • 1Teste no início (enquanto)
    • Condição verificada antes
    • Pode executar 0 vezes
  • 2Teste no final (repita-até)
    • Condição verificada depois
    • Executa ao menos 1 vez
    • Uso: ler até condição de parada
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

O laço repita–até (ou do-while) executa o corpo primeiro e depois verifica a condição. No algoritmo: dentro do laço, lê-se um número; se for positivo, soma-se; depois verifica-se se o número é zero — se sim, o laço termina; senão, repete. Isso atende exatamente ao enunciado.

Alternativa B — ❌ Incorreta

Estrutura condicional simples (se...então) não possui repetição. Ela executa um bloco apenas uma vez conforme uma condição, mas não permite looping. O problema exige repetição até que uma condição seja satisfeita, logo não se aplica.

Alternativa C — ❌ Incorreta

Estrutura sem repetição é inviável, pois o usuário deve informar vários números até digitar zero. Sem repetição, só seria possível ler um único número, o que não resolve o problema.

Alternativa D — ❌ Incorreta

O laço com teste no início (enquanto) poderia ser usado, mas exigiria uma leitura inicial antes do laço e a condição precisaria ser enquanto n ≠ 0. O enunciado pede o comportamento natural do repita–até, onde o corpo é executado antes do teste. Embora seja possível adaptar, a alternativa não é a mais direta e, em muitas linguagens de programação, o laço com teste no início exige duplicação de código (ler antes e dentro). A questão pede a estrutura correta para o comportamento descrito, e o repita–até é a que melhor casa.

Alternativa E — ❌ Incorreta

Condicional múltipla (switch/case) é usada para selecionar entre várias opções com base em um valor, não para repetição. Não tem qualquer relação com a necessidade de repetir a leitura de números.

Gabarito: letra A.

Link permanente: /questoes/fg130040