VisuAlg Web

Depuração e teste de mesa no VisuAlg

Aprenda a encontrar erros lógicos no VisuAlg com teste de mesa, acumuladores, valores esperados e exemplos para executar.

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.

Exemplo de códigoVisuAlg
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)

fimalgoritmo

No 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.

Exemplo de códigoVisuAlg
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.")

fimalgoritmo
Exercício Prático: Execute os códigos acima e avance com p (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.

Exemplo de códigoVisuAlg
algoritmo "ConferirAcumulador"
var
  i, soma: inteiro
inicio
  soma <- 0
  para i de 1 ate 3 faca
    soma <- soma + i
  fimpara
  escreval("Soma: ", soma)
fimalgoritmo
Teste de mesa da soma
Etapaisoma antessoma depois
Primeira volta101
Segunda volta213
Terceira volta336

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.