LÓGICA E LINGUAGEM DE PROGRAMAÇÃO

O detetive de bugs: encontrando e corrigindo um loop infinito

Registro de Aula S08A3 — Semana 8 · Aula 3 – Depurando laços infinitos
Unidade 2 – Estruturas de repetição: loop whileBase: Capítulos 19 e 20 — Conceito de repetição e whileTempo: 40 a 50 minEntrega: AVAArquivo: NOME_TURMA_S08A3
ATIVIDADE PROPOSTA

O que vocês vão resolver

Nesta atividade vocês serão detetives de software. Em grupos de até 5 pessoas, vão analisar um programa que deveria fazer uma contagem regressiva de 5 até 1 e terminar com “Lançar!”, mas que nunca para de executar. A missão: usar a técnica de depuração para encontrar o erro, entender por que ele acontece e corrigi-lo.

OBJETIVOS

O que vocês vão aprender aqui

SOLUÇÃO DIGITAL

Ferramenta usada nesta aula

VG
Visualg
Interpretador de pseudocódigo (Portugol) usado no laboratório. Permite escrever o algoritmo em português estruturado e executá-lo com F9. O relatório é preenchido nesta página e exportado em PDF pelo navegador.
ENTENDA

Onde um laço trava

Todo laço <code>enquanto</code> tem três obrigações. O código desta atividade cumpre duas — e é a que falta que gera o loop infinito.

O código com bug (copie no Visualg)algoritmo "ContagemComBug"Varcontador: inteiroIniciocontador := 5enquanto contador > 0 facaescreval("Contando...", contador)fimenquantoescreval("Lançar!")FimalgoritmoDeveria contar 5, 4, 3, 2, 1 e exibir “Lançar!”. Execute com F9 — e prepare-se para interromper.
As três obrigações de um laço1. INICIALIZAR a variável de controlecontador := 5 ✔ está no código 2. TESTAR a condiçãoenquanto contador > 0 ✔ está no código 3. ATUALIZAR a variável dentro do laço✘ é esta que está faltandoSe a variável testada nunca muda, a condição nunca fica falsa — e o laço nunca tem motivo para parar.
contador > 0 ? VERDADEIRO FALSO repete o bloco sai do laço e exibe“Lançar!” Como contador vale 5 para sempre, o caminho da direita nunca acontece.

Como preencher este relatório

  1. 1Leia o cenário e observe os diagramas — eles mostram o conceito que a sua resposta precisa usar.
  2. 2Preencha a identificação do grupo no Passo 0.
  3. 3Responda um passo de cada vez, na ordem. Cada passo traz uma dica de como pensar logo abaixo do enunciado.
  4. 4Confira o checklist no final — ele verifica se não ficou nada faltando.
  5. 5Clique em Gerar PDF da resposta. Na janela de impressão, escolha Destino: Salvar como PDF e salve como NOME_TURMA_S08A3.
  6. 6Envie esse PDF no AVA. O que vocês digitarem fica salvo neste computador sozinho — dá para fechar a página e voltar depois.
PASSO 0

Identificação

Estes dados montam a capa e a folha de rosto do relatório em PDF.

PROCEDIMENTOS

Investiguem o bug

O roteiro tem três partes: encontrar o bug, provar a causa com depuração e corrigir.

1
Antes de executar: o que vocês esperam que aconteça?
Como pensar: Leiam o código linha a linha, sem rodar. Registrar a previsão antes é o que transforma o teste em investigação — e não em tentativa e erro.
2
Executem o programa (F9) e registrem o que viram na tela.
Como pensar: Feche a janela de execução para encerrar o programa. A mensagem “Lançar!” chegou a aparecer alguma vez?
3
Acrescentem a linha de depuração dentro do laço e executem de novo.
Como pensar: Logo depois do escreval, dentro do enquanto, acrescentem exatamente esta linha — ela é uma janela para ver a variável a cada volta:
enquanto contador > 0 faca escreval("Contando...", contador) escreval("DEBUG: O valor do contador é:", contador, ". A condição (contador > 0) é verdadeira.") fimenquanto
4
Concluam: por que este laço nunca para?
Como pensar: Juntem as duas evidências: o valor que o DEBUG mostrou e a condição que está sendo testada. Qual das três obrigações do laço está faltando?
5
Corrijam o programa e colem o código final.
Como pensar: Removam a linha de DEBUG (ela já cumpriu o papel) e acrescentem, dentro do laço antes do fimenquanto, a linha que diminui o contador. Executem: deve contar de 5 a 1 e exibir “Lançar!”.
algoritmo "ContagemCorrigida" Var contador: inteiro Inicio contador := 5 enquanto contador > 0 faca escreval("Contando...", contador) _______________________ // a correção! fimenquanto escreval("Lançar!") Fimalgoritmo
6
Reflexão final para o registro no AVA.
Como pensar: O registro pede três coisas: a causa do erro, como vocês resolveram, e onde o grupo sentiu mais dificuldade e mais facilidade.
CONFIRA

Checklist antes de gerar o PDF

Ao clicar em “Gerar PDF da resposta”, o navegador monta o relatório completo no padrão de roteiro de aula prática — com capa, folha de rosto, objetivos, procedimentos, as respostas do grupo e as referências. Na janela de impressão, escolha Destino: Salvar como PDF, salve como NOME_TURMA_S08A3 e envie no AVA.
AVALIAÇÃO

Como esta atividade será avaliada

CritérioPontos
Diagnóstico correto: ausência da atualização da variável de controle4,0
Uso da depuração com escreval para provar a causa2,0
Código corrigido funcionando (conta de 5 a 1 e encerra)3,0
Qualidade da reflexão final1,0
REFERÊNCIAS

De onde veio o conteúdo desta aula

Curso Técnico em Desenvolvimento de Sistemas
Roteiro de Aula Prática
Lógica e Linguagem de Programação
O detetive de bugs: encontrando e corrigindo um loop infinito
São Paulo - SP
2026
Roteiro de Aula Prática
O detetive de bugs: encontrando e corrigindo um loop infinito
Roteiro de Aula Prática apresentado ao componente curricular Lógica e Linguagem de Programação, como requisito parcial de avaliação do 2º bimestre.
São Paulo - SP
2026

Roteiro de Aula Prática

Nome da disciplina: LÓGICA E LINGUAGEM DE PROGRAMAÇÃO
Unidade: 2 – Estruturas de repetição: loop while
Aula: 3 – Depurando laços infinitos
Base teórica: Capítulos 19 e 20 — Conceito de repetição e while

Objetivos

  • Corrigir loops malformados que entram em repetição infinita.
  • Implementar e depurar loops controlados por condição (enquanto).
  • Usar o escreval como “console” de depuração, inspecionando a variável de controle a cada volta.
  • Manter a persistência diante de erros, propondo soluções alternativas com organização lógica.

Solução digital

Visualg.

Interpretador de pseudocódigo (Portugol) usado no laboratório. Permite escrever o algoritmo em português estruturado e executá-lo com F9. O relatório é preenchido nesta página e exportado em PDF pelo navegador.

Procedimento / Atividade

Atividade proposta: Nesta atividade vocês serão detetives de software. Em grupos de até 5 pessoas, vão analisar um programa que deveria fazer uma contagem regressiva de 5 até 1 e terminar com “Lançar!”, mas que nunca para de executar. A missão: usar a técnica de depuração para encontrar o erro, entender por que ele acontece e corrigi-lo.

Procedimentos para a realização da atividade

Checklist de entrega

Critérios de avaliação

CritérioPontos
Diagnóstico correto: ausência da atualização da variável de controle4,0
Uso da depuração com escreval para provar a causa2,0
Código corrigido funcionando (conta de 5 a 1 e encerra)3,0
Qualidade da reflexão final1,0

Referências

  • SEDUC-SP — Roteiro de Atividade Prática SISANO1C1B2S8A3AP: “O detetive de bugs: encontrando e corrigindo um loop infinito”.
  • SEDUC-SP — Aula SISANO1C1B2S8A3: “Depurando laços infinitos” (Unidade 2, Componente 1).
  • Apostila da disciplina — Capítulos 19 e 20: conceito de repetição e while.
  • CURSO EM VÍDEO. Operadores lógicos e relacionais — Curso de algoritmos #04, Gustavo Guanabara.
salva sozinho neste computador