Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — UPENET/IAUPE 2017

Algoritmos e Estrutura de DadosAlgoritmos
Código
qq307304
Banca
UPENET/IAUPE
Órgão
UPE
Ano
2017
Nível
Superior
Cargo
NET/IA - - Analista de Sistemas - Desenvolvimento de Web
Considere o seguinte algoritmo:Para i de 7 até 4 Façaaux <- v[i]v[i] <- v[7 - i]v[7 - i] <- auxi <- i - 1Fim_Paramax = maior vv[2] <- v[0]v[max - v[2]] <- v[max - v[1]]Assinale a alternativa que possui o estado final do vetor v inicialmente definido com os elementos de 32 a 39.
  1. A37, 38, 39, 36, 35, 34, 33, 32
  2. B38, 38, 39, 36, 35, 34, 33, 32
  3. C39, 38, 39, 36, 35, 34, 33, 32
  4. D39, 39, 39, 36, 35, 34, 33, 32
  5. E39, 38, 37, 36, 35, 34, 33, 32
Revelar gabarito e comentário

GabaritoB — 38, 38, 39, 36, 35, 34, 33, 32

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

Simulação de algoritmo com vetor e laço

Gabarito: letra B. Após a execução do loop (invertendo pares simétricos) e das duas atribuições finais, o vetor original [32,33,34,35,36,37,38,39] se transforma em [38,38,39,36,35,34,33,32], exatamente a alternativa B.

O algoritmo manipula um vetor v de 8 posições (índices 0 a 7), inicialmente com os valores 32 a 39. O primeiro bloco é um laço que troca elementos simétricos; o segundo bloco realiza duas atribuições baseadas no maior valor do vetor.

Execução passo a passo

Valores iniciais:

v[0]=32, v[1]=33, v[2]=34, v[3]=35, v[4]=36, v[5]=37, v[6]=38, v[7]=39

Laço: Para i de 7 até 4 Faça — interpretamos que i assume os valores 7, 6, 5, 4 (decrescendo). O comando i <- i - 1 é redundante nessa interpretação, mas não altera a sequência.

Iteração

i

Operação

Estado do vetor (índices 0 a 7)

1

7

troca v[7] com v[0]

[39,33,34,35,36,37,38,32]

2

6

troca v[6] com v[1]

[39,38,34,35,36,37,33,32]

3

5

troca v[5] com v[2]

[39,38,37,35,36,34,33,32]

4

4

troca v[4] com v[3]

[39,38,37,36,35,34,33,32]

Após o laço, o vetor é invertido (primeira metade trocada com a segunda).

Atribuições finais:

  • max = maior v: o maior valor é 39.

  • v[2] <- v[0]: v[2] recebe 39 → vetor: [39,38,39,36,35,34,33,32]

  • v[max - v[2]] <- v[max - v[1]]: calculamos max - v[2] = 39 - 39 = 0 e max - v[1] = 39 - 38 = 1. Então v[0] <- v[1] → v[0] recebe 38 → vetor final: [38,38,39,36,35,34,33,32]

  1. 1Vetor inicial32 a 39
  2. 2Laço (i=7 a 4)Inverte pares simétricos
  3. 3max = maior v39
  4. 4v[2] ← v[0]v[2]=39
  5. 5v[0] ← v[1]v[0]=38
LEVEL · soulevel.com.br

Análise das alternativas

Alternativa A — ❌ Incorreta

Apresenta v[0]=37, que não é o resultado da última atribuição. O valor correto é 38.

Alternativa B — ✅ Correta ⟵ GABARITO

Exatamente o vetor final obtido: [38,38,39,36,35,34,33,32].

Alternativa C — ❌ Incorreta

Mantém v[0]=39 (valor após o laço, mas antes da segunda atribuição). A última linha altera v[0] para 38.

Alternativa D — ❌ Incorreta

Tanto v[0] quanto v[1] e v[2] são 39, o que não ocorre. Apenas v[2] fica 39.

Alternativa E — ❌ Incorreta

Corresponde ao vetor imediatamente após o laço, antes das atribuições finais.

Conclusão

O gabarito é a letra B. A principal dificuldade da questão é acompanhar as trocas no laço e o cálculo dos índices na última linha, que depende dos valores já alterados.

PEGA ESSA DICA!

Simule cada passo em uma tabela, mantendo controle do estado do vetor após cada operação. Atente que a segunda atribuição usa os valores já modificados pela primeira (v[2] foi alterado).

Link permanente: /questoes/qq307304