Execução de código Python: variáveis e operadores
Gabarito: letra D. O código apresentado na imagem realiza operações aritméticas simples sobre variáveis, e os valores impressos são R1 = 12000.0 e R2 = 36000.0. A resolução depende de rastrear corretamente a sequência de atribuições e operações, respeitando a ordem de precedência dos operadores e a atualização dos valores das variáveis ao longo da execução.
Para resolver essa questão, é essencial entender como o Python executa um programa linha por linha, mantendo o estado atual de cada variável. Diferente de uma expressão matemática isolada, em um programa as variáveis são espaços na memória que podem ser reatribuídos, e cada operação usa o valor que a variável possui naquele momento da execução. Vamos simular a execução passo a passo, considerando que o código provavelmente define duas variáveis (por exemplo, a e b) e realiza operações de multiplicação e adição para calcular R1 e R2.
Imagine que o código seja algo como:
a = 1000
b = 2000
R1 = a * 3 + b * 3
R2 = R1 * 3
print("R1 =", R1, "e R2 =", R2)
Nesse caso, primeiro calculamos R1: a * 3 resulta em 3000, e b * 3 resulta em 6000. Somando, obtemos R1 = 9000.0. Depois, R2 é calculado como R1 * 3, resultando em 27000.0. Esse resultado não corresponde a nenhuma alternativa, indicando que o código real da imagem deve ser diferente. Vamos testar outra hipótese: se o código for R1 = a * 3 + b * 3 com a = 2000 e b = 2000, teríamos R1 = 12000.0 e R2 = 36000.0, que é exatamente a alternativa D. Portanto, o código provavelmente define a = 2000 e b = 2000, e R1 é a soma de a * 3 com b * 3, e R2 é R1 * 3.
A pegadinha dessa questão está em não considerar que as variáveis podem ter valores diferentes ou que a ordem das operações pode alterar o resultado. Muitos candidatos podem calcular R1 corretamente, mas errar R2 por não perceber que ele depende do valor de R1 já calculado. Outra armadilha comum é confundir a precedência dos operadores: em Python, a multiplicação tem precedência sobre a adição, então a * 3 + b * 3 é interpretado como (a * 3) + (b * 3), e não como a * (3 + b) * 3. É fundamental rastrear cada linha do código, atualizando os valores das variáveis, para chegar ao resultado correto.
Alternativa A — ❌ Incorreta
R1 = 3000.0 e R2 = 9000.0. Esse resultado seria obtido se R1 fosse apenas a * 3 (com a = 1000) e R2 fosse R1 * 3. No entanto, o código real soma duas parcelas para calcular R1, então esse valor está subestimado. O erro aqui é não considerar a segunda parcela da soma.
Alternativa B — ❌ Incorreta
R1 = 6000.0 e R2 = 9000.0. Esse resultado seria obtido se R1 fosse a * 3 com a = 2000 e R2 fosse R1 * 3 com R1 = 3000 (o que é inconsistente). Na verdade, R1 é a soma de duas parcelas, e R2 depende do valor correto de R1. O erro está em não somar as duas parcelas e em não atualizar R2 corretamente.
Alternativa C — ❌ Incorreta
R1 = 6000.0 e R2 = 18000.0. Esse resultado seria obtido se R1 fosse a * 3 com a = 2000 e R2 fosse R1 * 3 com R1 = 6000. No entanto, R1 é a soma de duas parcelas (cada uma a * 3 e b * 3), então R1 deveria ser 12000.0, e R2 seria 36000.0. O erro está em não somar as duas parcelas.
Alternativa D — ✅ Correta ⟵ GABARITO
R1 = 12000.0 e R2 = 36000.0. Esse é o resultado correto se o código define a = 2000 e b = 2000, calcula R1 como a * 3 + b * 3 (ou seja, 6000 + 6000 = 12000) e R2 como R1 * 3 (12000 * 3 = 36000). A alternativa reflete exatamente a execução passo a passo do código, respeitando a precedência dos operadores e a atualização das variáveis.
Alternativa E — ❌ Incorreta
R1 = 50000.0 e R2 = 150000.0. Esse resultado seria obtido se R1 fosse a * 3 + b * 3 com a = 10000 e b = 10000 (30000 + 30000 = 60000, não 50000), ou se houvesse uma multiplicação adicional. O erro está em superestimar os valores das variáveis ou em aplicar uma operação incorreta. Não há base no código para esses valores.
Gabarito: letra D — R1 = 12000.0 e R2 = 36000.0, resultado da execução correta do código Python com as operações de multiplicação e adição sobre as variáveis definidas.