Questão nº 32
Questão de Lógica de Programação e Estrutura de Dados · CESGRANRIO BASA 01/2024 (nº 32)
Algumas estruturas de controle típicas das linguagens de programação permitem que uma sequência de instruções que estejam em um bloco dentro dessas estruturas de controle seja repetida. Entre essas estruturas de controle estão a de repetição com teste no início e a de repetição com teste no fim.
A estrutura de controle de repetição com teste no início e a estrutura de controle de repetição com teste no fim garantem, respectivamente, que o bloco de código dentro delas
- Apode não ser executado e será executado ao menos uma vez. (alternativa correta)
- Bpode não ser executado e será executado mais de uma vez.
- Cserá executado ao menos uma vez e será executado no máximo uma vez.
- Dserá executado ao menos uma vez e pode não ser executado.
- Eserá executado mais de uma vez e será executado ao menos uma vez.
Resposta comentada
Gabarito Alternativa A
Conceito-chave: A diferença está no momento em que a condição é testada. No teste no início (como while), a condição é verificada antes de executar o bloco; logo, se for falsa já no começo, o bloco é pulado. No teste no fim (como do...while), a condição é verificada depois de executar o bloco; logo, o bloco roda pelo menos uma vez, mesmo que a condição seja falsa.
- (A) Correta: É exatamente o gabarito: no teste no início, o bloco pode não ser executado (condição falsa de cara); no teste no fim, o bloco é executado ao menos uma vez (porque o teste vem depois da primeira execução).
- (B) Incorreta: Erra ao dizer que o teste no fim garante "mais de uma vez" — ele garante apenas uma execução mínima, não múltiplas (se a condição for falsa após a 1ª volta, para).
- (C) Incorreta: Inverte tudo: no teste no início não é garantida nenhuma execução; e no teste no fim não há limite máximo de uma vez (pode repetir várias vezes).
- (D) Incorreta: É o espelho da correta, mas trocada: quem garante "ao menos uma vez" é o teste no fim, não o início; e quem "pode não executar" é o início, não o fim.
- (E) Incorreta: Afirma que o teste no início garante "mais de uma vez", o que é falso (ele pode executar zero vezes); e repete o erro de exigir múltiplas execuções no teste no fim.
Armadilha da banca (no distrator mais tentador, a letra D): Ela inverte a ordem das garantias. O aluno que decora "teste no início = pode não executar" e "teste no fim = executa ao menos uma vez" sem fixar qual estrutura tem qual comportamento cai na D, que usa exatamente essas palavras, mas na ordem trocada. A pegadinha é associar a frase certa à letra errada.
Fonte: CESGRANRIO BASA 01/2024 Técnico Científico - Área de Formação: Tecnologia da Informação (Caderno Prova B). Reproduzida para fins de estudo.