Questão de Programação — Conceitos básicos de programação — FGV 2023
Programação›Conceitos básicos de programação
Código
fg071521
Banca
FGV
Órgão
TCE-SP
Ano
2023
Nível
Médio
Cargo
Auxiliar Técnico da Fiscalização - TI
Marta está definindo um algoritmo para descrever um menu de funções do sistema, apresentando as opções baseadas em números, seguido da leitura da opção, com a saída ocorrendo após a digitação do número zero.Para gerenciar o fluxo de execução, que envolve a exibição do menu e leitura da opção, repetindo-se até que seja digitada a opção zero, Marta deve utilizar a estrutura de controle:
Aenquanto - faça;
Bse - então;
Crepita - até;
Dpara - faça;
Ese - então - senão.
Revelar gabarito e comentário▾
GabaritoC — repita - até;
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: repita-até vs. enquanto-faça
Gabarito: letra C. A descrição do algoritmo — exibir menu, ler opção e repetir até que zero seja digitado — exige um laço que execute o bloco pelo menos uma vez e verifique a condição de parada ao final. Essa é a característica da estrutura repita-até (ou do-while em algumas linguagens), que garante pelo menos uma execução do corpo. Nesse caso, a condição de saída é opção = 0; enquanto a opção for diferente de zero, o loop continua.
A banca testa o conhecimento das diferenças entre as estruturas de repetição. O ponto central é que o enunciado descreve um comportamento pós-testado: o menu é mostrado e a opção é lida antes de se verificar se deve continuar. A estrutura enquanto-faça, por ser pré-testada, não garantiria a primeira execução — mas aqui isso não é problema? Na verdade, a descrição "repetindo-se até que seja digitada a opção zero" sugere que a repetição ocorre após a primeira leitura, o que é exatamente o comportamento do repita-até. Já o enquanto-faça verificaria antes de executar, o que exigiria uma inicialização artificial da variável opção (por exemplo, atribuir um valor diferente de zero antes do loop). Embora seja possível implementar com enquanto, a estrutura mais natural e que corresponde exatamente ao fluxo descrito é o repita-até.
1Pré-testada (enquanto-faça)Testa antes de executar
2Pós-testada (repita-até)Executa antes de testar
3Garante 1ª execuçãoSó repita-até
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
A estrutura enquanto-faça (while-do) testa a condição antes de executar o bloco. No contexto do menu, seria necessário garantir que a opção lida antes do laço não fosse zero, ou usar uma variável de controle inicializada. O enunciado não menciona essa preparação; ele descreve a exibição e leitura como parte do laço que se repete. Portanto, não é a correspondência direta.
Alternativa B — ❌ Incorreta
Se-então é uma estrutura condicional (if-then), não de repetição. O enunciado pede repetição continuada até uma condição ser atingida, o que não pode ser feito com uma única decisão.
Alternativa C — ✅ Correta ⟵ GABARITO
Repita-até (repeat-until) é um laço pós-testado: executa o bloco primeiro e depois verifica a condição de parada. No problema, a sequência "exibir menu, ler opção, repetir até zero" encaixa perfeitamente: a condição de saída é opção = 0. Enquanto a opção for diferente de zero, o bloco se repete. Essa é a resposta certa.
Alternativa D — ❌ Incorreta
Para-faça (for-do) é usado quando se conhece antecipadamente o número de iterações (por exemplo, percorrer um intervalo). No menu, o número de repetições é indeterminado, dependendo da entrada do usuário. Não se aplica.
Alternativa E — ❌ Incorreta
Se-então-senão é uma estrutura condicional composta (if-then-else), não um laço. Não permite repetição.
PEGA ESSA DICA!
Em algoritmos de menu interativo com saída por entrada do usuário, a estrutura mais adequada geralmente é repita-até. O enquanto-faça também pode ser usado, mas exigiria uma leitura inicial fora do laço ou uma variável de controle com valor falso. Identifique o tipo de teste (pré ou pós) conforme a descrição: "repita até que" indica pós-teste; "enquanto ... faça" indica pré-teste.