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=4
while (a>=0):
b=a+2
c=b / 2
if (b>5):
print (a+b)
elif (b<c):
print (c+a)
a=a-2

Passo 1

O enunciado pede para montar a tabela de acompanhamento (trace table) de um programa que inicializa e, enquanto , calcula
b \(=\) a \(+2\)  
c \(=\) b/\(2\)  
se b>\(5\): imprimir \(a+b\)  
elif \(b<c\): imprimir \(c+a\)  
a \(=\) a-\(2\)
Devemos registrar os valores de , e após cada instrução.

Passo 2

Para construir a tabela, vamos numerar as instruções principais:
L :
L : teste while (a>\(=0\))
L :
L :
L : teste if (b>\(5\))
L : print(\(a+b\)) ou
L : print(\(c+a\)) (no caso do elif)
L :
Em cada linha da tabela indicamos qual instrução foi executada e registramos os valores atuais de , e .

Passo 3

Primeira iteração (início com ):
Instrução
L :
L : enquanto ?
L :
L :
L : ? (sim)
L : print(\(a+b\))\(=10\)
L :

Passo 4

Segunda iteração (agora a=2):
Instrução a b c
L 2: enquanto a>=0? 2 6 3
L 3: b=a+2 2 4 3
L 4: c=b/2 2 4 2
L 5: b>5? (não) 2 4 2
L 6: elif b<c? (não) 2 4 2
L 8: a=a-2 0 4 2

Passo 5

Terceira iteração (agora a=0) e fim do laço:
Instrução a b c
L 2: enquanto a>=0? 0 4 2
L 3: b=a+2 0 2 2
L 4: c=b/2 0 2 1
L 5: b>5? (não) 0 2 1
L 6: elif b<c? (não) 0 2 1
L 8: a=a-2 -2 2 1
L 2: enquanto a>=0? (não) -2 2 1

Resposta

A tabela completa de acompanhamento do programa é:
Instrução
L :
L : enquanto ?
L :
L :
L : ? (sim)
L : print(\(a+b\))\(=10\)
L :
L : enquanto ?
L :
L :
L : ? (não)
L : elif ? (não)
L :
L : enquanto ?
L :
L :
L : ? (não)
L : elif ? (não)
L :
L : enquanto ? (não)

Exercícios relacionados