Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — SUGEP - UFRPE 2018

Algoritmos e Estrutura de DadosAlgoritmos
Código
qq400625
Banca
SUGEP - UFRPE
Órgão
UFRPE
Ano
2018
Nível
Médio
Cargo
SUGEP - - Técnico de Tecnologia da Informação - Sistemas
Considere o seguinte algoritmoInteiro array[10] = {0,1,2,3,4,5,6,7,8,9}var i = 0Enquanto i < 10 FaçaInteiro temp = array[i]array[i] = array[9-i]array[9-i] = tempi = i + 1Fim enquantoQual será o conteúdo do vetor ‘array’ após a execução do programa?
  1. A9, 8, 7, 6, 5, 4, 3, 2, 1, 0
  2. B0, 1, 2, 3, 4, 9, 8, 7, 6, 5
  3. C9, 8, 7, 6, 5, 0, 1, 2, 3, 4
  4. D0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  5. E1, 0, 3, 2, 5, 4, 7, 6, 9, 8
Revelar gabarito e comentário

GabaritoD — 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

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

Algoritmo de troca simétrica em vetor

Gabarito: letra D. Após a execução completa do algoritmo, o vetor array retorna ao seu estado original {0,1,2,3,4,5,6,7,8,9}, pois o loop Enquanto i < 10 executa 10 iterações (i=0 a 9), realizando trocas simétricas que se anulam.

O algoritmo inicializa i=0 e a cada iteração troca array[i] com array[9-i]. Para i de 0 a 4, as trocas são efetivas, invertendo os pares (0↔9, 1↔8, ..., 4↔5). Para i de 5 a 9, os mesmos pares são trocados novamente, restaurando os valores originais. Ao final, i=10 encerra o loop.

Vamos simular passo a passo:

  • Após i=0..4: vetor fica {9,8,7,6,5,4,3,2,1,0} (invertido)

  • i=5: troca índices 5 (4) e 4 (5) → {9,8,7,6,4,5,3,2,1,0}

  • i=6: troca índices 6 (3) e 3 (6) → {9,8,7,3,4,5,6,2,1,0}

  • i=7: troca índices 7 (2) e 2 (7) → {9,8,2,3,4,5,6,7,1,0}

  • i=8: troca índices 8 (1) e 1 (8) → {9,1,2,3,4,5,6,7,8,0}

  • i=9: troca índices 9 (0) e 0 (9) → {0,1,2,3,4,5,6,7,8,9}

  1. 1i=0..4: inverte pares (0↔9, 1↔8...)
  2. 2Vetor fica {9,8,7,6,5,4,3,2,1,0}
  3. 3i=5..9: refaz as mesmas trocas
  4. 4Vetor retorna ao original {0..9}
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Apresenta o vetor invertido {9,8,7,6,5,4,3,2,1,0}, que seria o resultado se o loop parasse em i=4 ou fosse até i=4. O erro é desconsiderar as trocas seguintes (i=5 a 9) que desfazem a inversão.

Alternativa B — ❌ Incorreta

Sequência {0,1,2,3,4,9,8,7,6,5}: não corresponde a nenhuma etapa do algoritmo.

Alternativa C — ❌ Incorreta

{9,8,7,6,5,0,1,2,3,4}: não é gerada pelo código.

Alternativa D — ✅ Correta ⟵ GABARITO

Vetor original {0,1,2,3,4,5,6,7,8,9}. Conforme simulação, todas as trocas se anulam.

Alternativa E — ❌ Incorreta

{1,0,3,2,5,4,7,6,9,8}: troca de pares consecutivos? O algoritmo não faz trocas entre índices adjacentes, mas sim entre índice i e 9-i.

NÃO CAIA NESSA!

O candidato tende a pensar que o algoritmo simplesmente inverte o vetor (alternativa A), mas ignora que o loop percorre todas as posições (0 a 9), refazendo as trocas e restaurando a ordem original. A banca explora a pressa: muitos param de simular no meio e assinalam a inversão.

Gabarito: letra D (vetor permanece inalterado).

Link permanente: /questoes/qq400625