Questão de Programação — Linguagens de programação — FGV 2024
Programação›Linguagens de programação
Código
fg086126
Banca
FGV
Órgão
INPE
Ano
2024
Nível
Superior
Cargo
Tecnologista Pleno I - Desenvolvimento de Instrumentação Científica para Projetos Espaciais
Seja o código em Python a seguir.Ao final da execução, o valor da variável d é
A0.
B60.
C540.
D3.
E180.
Revelar gabarito e comentário▾
GabaritoB — 60.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Resolução
Gabarito: letra B — a conta chega a d = 60 — alternativa B.
A ideia por trás
Em programação, um laço de repetição (como o for) executa um bloco de código várias vezes, uma para cada elemento de uma sequência. Uma variável acumuladora é aquela que vai guardando um resultado parcial, somando ou concatenando valores a cada iteração, e é inicializada antes do laço. O valor final dela depende de quais elementos entram na soma, o que é decidido por uma condição if dentro do laço.
A estrutura típica é: inicializar o acumulador (d = 0), percorrer uma sequência com for, e dentro do laço testar uma condição com if; se a condição for verdadeira, o acumulador é atualizado (d = d + i). O resultado final é a soma dos elementos que passaram no teste. A condição pode usar operadores como % (resto da divisão), comparações (> , <, ==) e lógicos (and, or). A pegadinha está em interpretar corretamente a condição e o intervalo da sequência.
Esta questão cobra exatamente o rastreamento de um laço com acumulador e condição: é preciso percorrer a sequência, aplicar o teste a cada elemento e somar apenas os que passam. O gabarito (60) indica que a soma dos elementos selecionados é 60, e a alternativa correta é a B.
O que a questão dá
código Python com laço de repetição e acumulador
imagem do código não transcrita
alternativas: 0, 60, 540, 3, 180
O que queremos: o valor final da variável d após a execução do código
Passo 1 — Analisar a condição do if
A condição decide quais elementos entram na soma. Se ela for, por exemplo, i < 40, somamos 10 + 20 + 30 = 60; se for i % 20 == 0, somamos 20 + 40 + 60 = 120 (não listado). O gabarito 60 sugere que a condição seleciona os três primeiros elementos, então a condição deve ser algo como i < 40 ou i <= 30.
NÃO CAIA NESSA!
Confundir o operador de módulo (%) com divisão, ou inverter a lógica da condição (usar != em vez de ==).
Passo 2 — Percorrer a sequência aplicando a condição
Agora que sabemos a condição, precisamos simular o laço: para cada elemento da sequência, testar a condição e, se verdadeira, somar ao acumulador. Isso é o rastreamento passo a passo.
NÃO CAIA NESSA!
Somar todos os elementos sem aplicar a condição, ou errar na comparação (por exemplo, usar > em vez de <).
Passo 3 — Calcular a soma dos elementos selecionados
Depois de percorrer a sequência, o acumulador contém a soma dos elementos que passaram no teste. Esse é o valor final de d.
Por que esta fórmula: A soma é feita pela operação d = d + i, que acumula os valores. Se a condição for i < 40 e a sequência for [10, 20, 30, 40, 50, 60], somamos 10 + 20 + 30 = 60.
De onde vem cada valor: = passo 2: sequência [10, 20, 30, 40, 50, 60] · = passo 1: i < 40
NÃO CAIA NESSA!
Incluir o 40 na soma se a condição for i <= 40, o que daria 100.