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=10
b=22
while (b-a > 4): c=b-(2 * a) if (c > 0): d=c+1 else:
d=c+5
a=a+3
b=b-2

Passo 1

O programa inicia com as atribuições ;a=10; e ;b=22;, depois entra num laço while (b-a > 4) em que, a cada iteração, calcula
c = b - 2cdot a
testa se c>0 para atribuir a d seu valor ajustado, e em seguida atualiza a e b por
a mathrel+=3, b mathrel-=2
Precisamos montar a tabela de acompanhamento, registrando os valores de a, b, c e d logo após cada instrução executada.

Passo 2

Antes de montar a tabela, vamos ver quantas iterações ocorrem:
— Inicialmente b - a = 22 - 10 = 12 > 4, entra no laço.
— Após 1ª iteração fica a=13,;b=20 e b-a=7>4, faz 2ª iteração.
— Após 2ª iteração fica a=16,;b=18 e b-a=2<=4, sai do laço.
Logo, o corpo do while é executado 2 vezes. Agora preenchemos a tabela de acompanhamento.

Passo 3

Tabela de acompanhamento (valores logo após cada instrução):
Instrução a b c d
a = 10 10 - - -
b = 22 10 22 - -
c = b - 2cdot a 10 22 2 -
if c>0:;d = c+1 10 22 2 3
a = a + 3 13 22 2 3
b = b - 2 13 20 2 3
c = b - 2cdot a 13 20 -6 3
else d = c+5 13 20 -6 -1
a = a + 3 16 20 -6 -1
b = b - 2 16 18 -6 -1

Resposta

Veja acima a tabela completa de acompanhamento, mostrando o estado de todas as variáveis após cada atribuição ou ramo condicional.

Exercícios relacionados