Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — IF Sul Rio-Grandense 2019

Algoritmos e Estrutura de DadosAlgoritmos
Código
qq506995
Banca
IF Sul Rio-Grandense
Órgão
IF Sul Rio-Grandense
Ano
2019
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Observe o seguinte pseudo-código:X[1] <- 10X[2] <- X[1] + 20 * 2X[3] <- 100Y <- X[2]SE X[1] = 10 ENTAO X[1] <- X[3] + X[1] + 50Z <- Y + X[1] + x[2]Ao final da execução do código acima, qual é o valor da variável Z?
  1. A260
  2. B220
  3. C230
  4. D200
Revelar gabarito e comentário

GabaritoA — 260

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”.

Rastreamento de Pseudocódigo

Gabarito: letra A (260). O valor de Z é obtido executando-se as instruções passo a passo, respeitando a precedência dos operadores e a estrutura condicional SE...ENTÃO. A alternativa A é a única compatível com o resultado do rastreamento.

A resolução exige atenção à ordem das operações e à atualização das variáveis:

  1. X[1] ← 10

  2. X[2] ← X[1] + 20 * 2 → multiplicação primeiro: 20 * 2 = 40; depois soma: 10 + 40 = 50. Logo, X[2] = 50.

  3. X[3] ← 100

  4. Y ← X[2]Y = 50

  5. Teste condicional: SE X[1] = 10 → verdadeiro, então executa a atribuição: X[1] ← X[3] + X[1] + 50 = 100 + 10 + 50 = 160. Agora X[1] = 160.

  6. Z ← Y + X[1] + X[2]Z = 50 + 160 + 50 = 260.

Cada alternativa incorreta resulta de equívocos comuns: esquecer a precedência dos operadores, ignorar a alteração de X[1] no condicional, ou somar valores errados.

Alternativa A — ✅ Correta ⟵ GABARITO

Resultado exato do rastreamento: Z = 260.

Alternativa B — ❌ Incorreta

Obteria-se 220 se, por exemplo, o condicional fosse ignorado (X[1] permanecesse 10) e a expressão Z fosse 50 + 10 + 50 = 110? Não, 220 não aparece com simplificação típica. Provavelmente surge de cálculo equivocado na multiplicação ou soma.

Alternativa C — ❌ Incorreta

Valor 230: possível erro ao calcular X[2] como 10 + 20 = 30 (esquecendo a multiplicação) e depois X[1] alterado para 100 + 10 + 50 = 160, resultando em Z = 30 + 160 + 30 = 220? Não, 230 exigiria outro erro, como tratar 20 * 2 como 20 + 2.

Alternativa D — ❌ Incorreta

Valor 200: comum se desconsiderar a atualização de X[1] no condicional (mantendo X[1]=10) e calcular X[2] corretamente como 50, resultando Z = 50 + 10 + 50 = 110. Mas 200 ainda não fecha, indicando erro adicional (talvez trocar a ordem dos operandos).

PEGA ESSA DICA!

Para questões de rastreamento, simule com papel todos os passos, respeitando a precedência de operadores (multiplicação/divisão antes de adição/subtração) e anote os valores atualizados após cada instrução.

Gabarito: letra A

Link permanente: /questoes/qq506995