Informática, perguntado por pmscontato94, 3 meses atrás

Analise o algoritmo abaixo.

Algoritmo ManipulaVetor
Var
numeros : Vetor[1..5] de inteiro
auxiliar, i : inteiro
achou : booleano

Início
numeros[5] <- { 85, 27, 50, 75, 15 }

Enquanto (achou) faça

achou <- falso

Para i de 1 até 4 faça
Se (numeros[i] > numeros[i+1]) então
auxiliar <- numeros[i]
numeros[i] <- numeros[i+1]
numeros[i+1] <- auxiliar
achou <- verdadeiro
Fimse
Fimpara
Fimenquanto

Para i de 1 até 5 faça
Escreva(numeros[i], " ")
Fimpara
Fim

Marque a opção que apresenta a saída correta do Algoritmo
Alternativas
Alternativa 1:
85 75 27 15 50

Alternativa 2:
85 75 50 27 15

Alternativa 3:
15 27 85 75 15

Alternativa 4:
15 50 27 75 85

Alternativa 5:
15 27 50 75 85

Soluções para a tarefa

Respondido por AndersonFostinger
8

Resposta:

Alternativa 5

Explicação:

O algoritmo ordena o vetor em ordem crescente comparando o valor de cada posição com o valor da posição seguinte e se o valor for maior eles são trocados de posição.


RhanaPetreski: Pode me explicar pq a verificação não para quando são analisados o 27 e o 50. Naõ entendi esse uso do while ;
AndersonFostinger: O vetor numeros está com os valores iniciais {85, 27, 50, 75, 15}. Na primeira execução do while dentro da primeira execução do for (i = 1) é verificado se o 85 é maior que o 27 e, em caso afirmativo, eles são trocados e o vetor passa a ser {27, 85, 50, 75, 15}.
AndersonFostinger: Na próxima execução do for (i = 2) é verificado se o 85 é maior que o 50, então os valores são trocados e o vetor passa a ser {27, 50, 85, 75, 15} e assim sucessivamente até o i = 4, quando será verificado se o 85 é maior que o 15 e o vetor terminará como {27, 50, 75, 15, 85}.
AndersonFostinger: Na execução seguinte do while todo esse processo é realizado novamente até que o vetor esteja completamente ordenado. Repare que o algoritmo coloca o maior valor no final do vetor.
AndersonFostinger: Com relação ao while, ele está sendo usado para criar um loop até que o vetor esteja completamente ordenado. Repare que a variável "achou", que é a condição para o while continuar em execução, é falsa quando o while é iniciado e é atualizada para verdadeiro apenas quando a condição do if é verdadeira, ou seja, quando o vetor ainda não está ordenado, quando a condição do if é falsa, ou seja, o vetor já está ordenado, a variável "achou" não é atualizada para verdadeiro e o loop é encerrado.
Perguntas interessantes