O algoritmo a seguir utiliza palavras do nosso idioma para r...
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
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
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