Por que um programa de contagem repetitiva pode ficar preso em loop infinito? Para ilustrar, um grupo…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Investigar e registrar, por meio de um fluxograma, quando possível, um algoritmo que resolve um problema.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Por que um programa de contagem repetitiva pode ficar preso em loop infinito? Para ilustrar, um grupo comunitário quer montar kits de higiene contendo exatamente 3 itens cada. Foi elaborado este pseudocódigo para total de 17 itens: 1. itens := 17 2. kits := 0 3. enquanto itens >= 3 faça 4. kits := kits + 1 5. imprimir kits 6. itens := itens - 3 7. fim enquanto 8. imprimir itens restantes Se a ordem ou ausência de alguma instrução estiver incorreta, o laço pode não terminar. Analise o texto-base e identifique qual passo no pseudocódigo é fundamental para evitar loop infinito ao organizar os kits.
- A) Imprimir o número de kits durante a repetição
- B) Testar se itens >= 3 antes de cada iteração
- C) Subtrair 3 da variável itens a cada iteração
- D) Incrementar a variável kits em 1 a cada iteração
- E) Inicializar itens com o número total de objetos
✅ Resposta correta: alternativa C
Resolução passo a passo
- O laço enquanto repete o bloco enquanto a condição itens >= 3 for verdadeira. Para que o programa termine, a condição precisa, em algum momento, tornar-se falsa. Isso só acontece se a variável que aparece na condição (itens) mudar a cada volta.
- Na linha 6, itens := itens - 3 remove 3 itens a cada iteração, que é exatamente o tamanho de cada kit. Assim, 17 itens viram 14, 11, 8, 5, 2, e o valor cai abaixo de 3, encerrando o laço.
- Sem essa instrução, itens permaneceria 17 para sempre, a condição continuaria verdadeira e o laço rodaria indefinidamente, imprimindo kits sem parar. Por isso ela é o passo fundamental contra o loop infinito.
- A alternativa A está errada porque imprimir kits apenas exibe o valor, não altera a condição do laço. A alternativa B está errada porque testar a condição é necessário para decidir quando parar, mas, sem alterar itens, o teste sempre daria verdadeiro. A alternativa D está errada porque kits conta os kits montados, mas não influencia se o laço continua. A alternativa E está errada porque a inicialização com 17 define o ponto de partida, mas não garante o término, pois o valor precisa diminuir.
- Conclusão: o gabarito C está correto. O passo que torna o laço finito é a subtração de 3 da variável itens a cada iteração.
💡 Dica: Identifique a instrução que altera a variável para evitar repetição infinita.
Alternativa por alternativa
O aluno acredita que o laço termina porque o programa mostra os resultados na tela, confundindo saída de dados com controle da repetição.
O aluno acredita que basta existir um teste da condição para garantir o fim do laço, sem perceber que a condição precisa depender de uma variável que muda.
Por que engana: O aluno pode não perceber que a falta de atualização da variável 'itens' impede a condição de parada do laço.
Reduzir itens em 3 por ciclo faz com que a condição deixe de ser verdadeira, encerrando o laço.
O aluno confunde o contador de kits, que só registra quantos kits foram feitos, com a variável que controla a parada do laço.
O aluno acha que começar com o valor correto (17 itens) já resolve o problema, sem considerar que a variável precisa diminuir a cada volta.
Raio-X da questão
controle de repetição em laço
avaliacao
laços de repetição básicos · variáveis e atribuições
Estude como laços de repetição funcionam e a importância da atualização de variáveis de controle.
O aluno pode não perceber que a falta de atualização da variável 'itens' impede a condição de parada do laço.
pensamento_critico
cotidiano
Questões parecidas com resolução
- Como distribuir uniformemente kits de higiene a famílias em situação de vulnerabilidade? Para auxiliar, um voluntário…
- Uma pequena empresa de tecnologia desenvolveu um procedimento em linguagem natural para calcular a soma dos primeiros n…
- Em uma atividade de introdução à programação, uma turma simulou o funcionamento de um contador que registra cinco etapas…
- Em uma oficina de robótica de uma escola pública, um sensor registra quatro caixas colocadas em uma esteira. Para…
- Durante a última edição de um festival de música, a organização adotou um procedimento para distribuir pirulitos aos…
- Você já reparou como algumas situações cotidianas revelam padrões numéricos? Em uma campanha de doação, uma ONG…
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
