O algoritmo a seguir utiliza palavras do nosso idioma para r...

Próximas questões
Com base no mesmo assunto
Ano: 2013 Banca: FCC Órgão: DPE-SP Prova: FCC - 2013 - DPE-SP - Programador de computador |
Q304598 Algoritmos e Estrutura de Dados
O algoritmo a seguir utiliza palavras do nosso idioma para representar a resolução lógica de um problema computacional:

  algoritmo Teste
        var vet: vetor[0..4] inteiro
        var n, p, u, aux: inteiro         
        início
           para (p de 0 até 4 passo 1) faça
               leia (n)
               vet[p]
n
           fim_para
           p
0
           u
4
           aux
0
           enquanto (u<>1) faça
             enquanto (p<>u) faça
                 se(vet[p]>vet[p+1])
                   então aux
vet[p]
                         vet[p]
vet[p+1]
                         vet[p+1]
aux
                 fim_se
                 p
p+1
              fim_enquanto
              p
0
              u
u-1
           fim_enquanto
         fim  


O pseudocódigo apresentado
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: D - classifica em ordem crescente os valores armazenados em um vetor.

A questão apresenta um pseudocódigo que manipula um vetor e utiliza dois laços de repetição (um for e um while) e uma lógica de troca de elementos para ordenar os valores. Vamos discutir cada alternativa para entender por que a alternativa D é a correta.

Explicação da Alternativa Correta (D):

O pseudocódigo implementa uma versão simplificada do algoritmo de Bubble Sort, que é um método de ordenação. Veja como ele funciona:

  • Primeiro, ele lê 5 valores e os armazena em um vetor.
  • Depois, ele utiliza dois indicadores, p (inicializado em 0) e u (inicializado em 4), para controlar as posições do vetor.
  • O laço while externo reduz u de 1 em 1 até que u seja igual a 1.
  • O laço while interno percorre o vetor até a posição u, comparando elementos adjacentes e trocando-os se o anterior for maior que o próximo.
  • Esse processo efetivamente "empurra" o maior valor não ordenado para o final do vetor a cada iteração do laço externo, resultando em um vetor ordenado em ordem crescente ao final da execução.

Análise das Alternativas Incorretas:

A: A alternativa sugere que o algoritmo calcula o fatorial de cada número lido e os armazena em ordem decrescente. Isso está incorreto, pois o algoritmo apenas realiza a leitura e ordenação dos números, sem qualquer cálculo de fatoriais.

B: Essa alternativa afirma que o pseudocódigo está incorreto porque vetores de inteiros começam no índice 1 em todas as linguagens de programação. Isso não é verdade para muitas linguagens (como C, C++ e JavaScript), nas quais o índice começa em 0. Portanto, essa afirmativa é falsa.

C: Aqui, é alegado que uma sequência específica de valores (3, 8, 1, 9, 4) causaria um laço infinito. Isso não ocorre, pois o pseudocódigo decrementa u a cada iteração do while externo, garantindo que ele eventualmente termine.

E: A alternativa sugere que o algoritmo apenas armazena os valores e procura o maior valor. No entanto, o código faz mais do que isso; ele realmente ordena os valores. Portanto, essa descrição não é precisa.

Em resumo, a alternativa D é a correta porque descreve precisamente o que o algoritmo faz: ele lê valores, os armazena em um vetor e os ordena em ordem crescente usando uma lógica de comparação e troca.

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

Bubble Sort

O pseudocódigo está correto por isso elimina as alterativas (B) e (C). A letra (A) está errada pois o código não trata de fatorial, e a letra (E) está errada pois armazena 4 valores. A letra (D) está correta pois é um vetor Bubble Sort de ordem crescente.

Força Guerreiro!!!!!!

Clique para visualizar este comentário

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