Muitas vezes seu código vai executar sem erro de sintaxe, mas o resultado final fica errado (Erro Lógico). Para investigar isso, use a depuração interativa com a diretiva debug. Durante a execução, digite p ou proximo (e Enter) para avançar uma linha, c ou continue para seguir sem parar, e o nome de uma variável/função/procedimento para inspecionar detalhes no console.
algoritmo "AcompanhandoDebug"
debug
var
x, y: inteiro
inicio
x <- 10
y <- 5
// No console de saída, digite: p + Enter para avançar linha a linha
// Digite x ou y + Enter para inspecionar valores durante a execução
x <- x + y
y <- x - y
x <- x - y
// Essa lógica clássica inverte as variáveis sem usar variável temporária!
escreval("Agora x vale ", x, " e y vale ", y)
fimalgoritmoNo modo debug, cada passo mostra a linha atual e permite inspeção de símbolos. Isso ajuda muito a visualizar o incremento de laços (como i <- i + 1) e a entender exatamente quando cada variável muda de valor.
algoritmo "DebugLoop"
debug
var
i: inteiro
inicio
escreval("Use p/proximo para avançar e i para inspecionar.")
para i de 1 ate 3 faca
// A cada passo, inspecione i no console para ver o incremento acontecendo
escreval(i)
fimpara
escreval("Se quiser sair do passo a passo, digite c e pressione Enter.")
fimalgoritmop (ou proximo). Durante a execução, teste inspeções digitando i, x e y. Depois use c (ou continue) para finalizar sem novas pausas.Teste de mesa: acompanhar um acumulador
Um erro lógico pode produzir uma resposta incorreta sem interromper o programa. Para investigá-lo, escolha uma entrada pequena, calcule o resultado esperado e acompanhe as variáveis após cada comando. A soma de 1, 2 e 3 deve resultar em 6.
algoritmo "ConferirAcumulador"
var
i, soma: inteiro
inicio
soma <- 0
para i de 1 ate 3 faca
soma <- soma + i
fimpara
escreval("Soma: ", soma)
fimalgoritmo
| Etapa | i | soma antes | soma depois |
|---|---|---|---|
| Primeira volta | 1 | 0 | 1 |
| Segunda volta | 2 | 1 | 3 |
| Terceira volta | 3 | 3 | 6 |
Experimento: um programa que roda e calcula errado
Mova soma <- 0 para dentro do laço. A saída será 3, porque o acumulador é zerado a cada volta. A correção é inicializá-lo uma vez antes do laço. Com esse teste, você explica a causa do erro em vez de apenas tentar outra instrução.
No editor, o painel de variáveis ajuda a inspecionar o estado. Os exemplos anteriores desta aula usam a pausa de depuração. Comece por um caso curto, confira os limites do laço e só depois aumente os valores. Revise PARA e aplique o mesmo raciocínio ao percorrer vetores.