Para cada programa a seguir, monte a tabela de acompanhamento, exibindo o valor das variáveis após a execução de cada instrução.
a=2 * 2
b=5
if (a+b<10):
while (b-a<=1):
c=(a / 2)+b
b=b+1
a=a-2
else:
while (b-a>1):
c=b / 2
b=a+1

Passo 1

Temos um programa imperativo com três variáveis ( a, b e c), contendo atribuições, um teste if e dois loops while (um no “then” e outro no “else”). Nosso objetivo é montar uma tabela de acompanhamento (trace table) mostrando os valores de a, b e c logo após a execução de cada instrução, incluindo as avaliações de condição.

Passo 2

Antes de qualquer instrução, todas as variáveis estão indefinidas. A cada linha do programa (seja atribuição ou teste de condição), atualizamos apenas as variáveis afetadas, deixando as demais inalteradas. Quando uma variável ainda não recebeu valor, registramos como “undef”.

Passo 3

Executamos o programa passo a passo e registramos:

Resposta

A tabela acima mostra o valor de a, b e c após cada instrução executada.

Exercícios relacionados