Algoritmo Exemplo Var v: vetor [0..7]: inteiro Var n, p, u...

Próximas questões
Com base no mesmo assunto
Q515529 Algoritmos e Estrutura de Dados
Algoritmo Exemplo
Var v: vetor [0..7]: inteiro
Var n, p, u, a: inteiro
Início
   Para p de 0 até 7 passo 1 faça
      leia (n)
      v[p] ← n
    Fim_para
    p ← 0
    u ← 8
    Enquanto (u < > 2) faça
        Enquanto (p < > (u-1)) faça
          Se (v[p] > v[p+1]) então
              a ← v[p]
              v[p] ← v[p+1]
              v[p+1] ← a
           Fim_se
           p ← p + 1
         Fim_enquanto
         p ← 0
         u ← u - 1
       Fim_enquanto
  Fim

Considerando-se que v receba os valores 12, 21, 3, 9, 57, 33, 27 e 41, nessa ordem, após executar todos os laços de repetição as posições 4 e 5 do vetor v conterão, respectivamente, os valores
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a D - 27 e 33.

Vamos analisar a questão e entender por que essa é a resposta correta. A questão envolve a organização e ordenação de vetores, temas comuns em Algoritmos e Estrutura de Dados. O algoritmo apresentado executa um Bubble Sort, um método simples de ordenação.

Primeiro, observe o pseudocódigo:

Algoritmo Exemplo
Var v: vetor [0..7]: inteiro
Var n, p, u, a: inteiro
Início
Para p de 0 até 7 passo 1 faça
leia (n)
v[p] ← n
Fim_para
p ← 0
u ← 8
Enquanto (u < > 2) faça
Enquanto (p < > (u-1)) faça
Se (v[p] > v[p+1]) então
a ← v[p]
v[p] ← v[p+1]
v[p+1] ← a
Fim_se
p ← p + 1
Fim_enquanto
p ← 0
u ← u - 1
Fim_enquanto
Fim

Este algoritmo lê 8 valores para o vetor v e então utiliza o Bubble Sort para ordená-los. Vamos analisar as etapas de execução para o vetor v inicializado com os valores 12, 21, 3, 9, 57, 33, 27, 41:

Passo a passo do Bubble Sort:

  • Primeira Passagem:
    12, 21, 3, 9, 57, 33, 27, 41 → 12, 3, 21, 9, 57, 33, 27, 41 → 12, 3, 9, 21, 57, 33, 27, 41 → 12, 3, 9, 21, 33, 57, 27, 41 → 12, 3, 9, 21, 33, 27, 57, 41 → 12, 3, 9, 21, 33, 27, 41, 57
  • Segunda Passagem:
    3, 12, 9, 21, 33, 27, 41, 57 → 3, 9, 12, 21, 33, 27, 41, 57 → 3, 9, 12, 21, 27, 33, 41, 57
  • Terceira Passagem:
    3, 9, 12, 21, 27, 33, 41, 57

Ao fim do algoritmo, o vetor v estará ordenado como 3, 9, 12, 21, 27, 33, 41, 57. Portanto, as posições 4 e 5 do vetor conterão, respectivamente, os valores 27 e 33.

Agora vamos entender por que as outras alternativas estão incorretas:

  • A - 33 e 41: Esses valores estão nas posições 5 e 6 do vetor ordenado.
  • B - 21 e 27: Estes valores estão nas posições 3 e 4 do vetor ordenado.
  • C - 57 e 33: 57 é o maior valor e está na última posição do vetor.
  • E - 21 e 12: Estes valores não estão consecutivos no vetor ordenado.

Assim, a alternativa correta é D - 27 e 33, pois reflete corretamente os valores nas posições 4 e 5 após a ordenação.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Eu entendi que é um bubble sort que deixa o vetor da seguinte maneira: 3,9,12,21,27,33,41,57. Desta forma respondi que os elementos nas posições 4 e 5 são 21 e 27. ERREI a questão. Talvez a FCC quis que o candidato diferenciasse posição de ordem. O terceiro elemento é a mesma coisa do elemento da posição 2.

Marlo Oliveira, o vetor começa na posição 0(zero), logo a resposta correta é a alternativa D mesmo.

Bem, para evitar cair em alguma armadilha*, conferi o algoritmo "na mão" e me certifiquei que é mesmo um algoritmo para ordenamento em ordem crescente dos valores. De fato, as posições 4 e 5, ao final, são preenchidas pelos valores 27 e 33, respectivamente.

Temos que estar atentos a esse tipo de questão, pois a posição do vetor é determinada pelo seu índice. Assim, a posição 4 de um vetor, se refere ao valor constante do índice 4 deste vetor. Isso significa que, em um vetor que tem seu início determinado pela posição de índice 0, a posição de índice 4 se refere ao quinto valor deste vetor, e assim sucessivamente.

*durante as provas, pode ser demorado fazer esse tipo de verificação. Tendo como base a média de 2,5 a 3 minutos por questão, de cara é bom supor que um ordenamento será feito. A partir daí, temos que comparar padrões dos valores com os padrões das respostas. Exemplo: não seria um ordenamento par/ímpar, pois somente o 12 é par. Pouco provavelmente, seria um ordenamento decrescente, pois somente uma alternativa tem um par decrescente... e por aí vai... Com isso, já assumiria a hipótese de ser um ordenamento simples crescente e, estando com pouco tempo, trabalhe com essa info e acerte.

Ao executar o algoritmo com algumas interações, percebo que se trata do método Bubble Sort que ordena um vetor, comparando um elemento com seu próximo e trocando as respectivas posições dependendo do critério de ordenação. 

Logo o vetor ordenado será: 3,9,12,21,27...

Gabarito: D

Força Guerreiro!!!!!!

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo