Observe como um teste de mesa funciona por meio de um algoritmo simples:
Dadas duas variáveis a e b, inicialmente com valores v1 e v2, respectivamente, crie um algoritmo que atribua o valor v2 à variável a e o valor v1 à variável b.
Suponhamos que sua primeira proposta de solução se pareça com o algoritmo a seguir:
Algoritmo 1
Analisando esse algoritmo, vejamos se ele produz o efeito desejado: perceba que a instrução da linha 7 altera o valor de a para v2, de forma que a atribuição da linha 8 não muda o valor armazenado em b, pois depois da linha 7 o valor de a ficou igual ao valor de b. Isso pode ser visto em detalhes no teste de mesa, onde omitimos as linhas de comentário, pois essas não afetam a execução:
Qual seria, então, a solução adequada para esse problema? Clique aqui e veja.
Uma possível solução para esse problema é dada pelo algoritmo seguinte:
Algoritmo 2
Neste algoritmo, introduzimos a variável aux, responsável por armazenar o valor original de a, permitindo que o acessemos mesmo depois da troca do valor de a. Esse é o procedimento padrão utilizado para troca dos valores de duas variáveis. Veja, a seguir, o teste de mesa para esse novo algoritmo:
Teste de mesa do Algoritmo 2.
Dessa forma, ao final do algoritmo a variável a tem valor v2 e a variável b tem valor v1, conforme desejado.
X