Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Algoritmo "Obter notas e apresentar em ordem crescente"
Var
aNotas: VETOR[1..50] DE INTEIRO
I, J, Y, L, K, nNumero: INTEIRO
Inicio
Escreva("Digite o número de notas que você deseja ordenar: ")
Leia(nNumero)
Para I De 1 Ate nNumero Passo 1 Faca
Escreva("Digite a", I,"° nota: ")
Leia(aNotas[I])
Fimpara
Para K De 1 Ate I-1 Faca
Para J De 1 Ate nNumero Faca
Se aNotas[J] > aNotas[J+1] Entao
Y <- aNotas[J]
aNotas[J] <- aNotas[J+1]
aNotas[J+1] <- Y
Fimse
Fimpara
Fimpara
Para L De 1 Ate J Faca
Escreval(aNotas[L])
Fimpara
Fimalgoritmo
Olá pessoal,
Eu preciso fazer um algoritmo no VisualG que leia um determinado número de notas e as organize-as de forma crescente, eu consegui elaborar o algoritmo, mais, no resultado ele aparece um 0, sendo que eu não digitei nenhum 0.
Exemplo:
Digitei: 9
10
2
No resultado aparece: 0
2
9
10
O algoritmo está acima, obrigado.
KhaosDoctor, verifiquei a possibilidade mais quando o "+1" é retirado, o resultado aparece em ordem decrescente, ainda com o "0" no resultado.
Eu acredito que ele está criando um indice a mais no vetor quando você utiliza J+1
Vendo o post do KhaosDoctor, cheguei a seguinte conclusão.
São 3 notas: A, B e C. Devem ser feitas 2 comparações, entre A e B, depois entre B e C.
Entendeu a lógica?
Edição:
Faz os testes aqui:
Para K De 1 Ate I-1 Faca
Para J De 1 Ate nNumero Faca
Se aNotas[J] > aNotas[J+1] Entao
Y <- aNotas[J]
aNotas[J] <- aNotas[J+1]
aNotas[J+1] <- Y
Fimse
Fimpara
Fimpara
lokaodomau, mesmo com a substituição que você solicitou, não apresentou resultados diferentes, tudo igual.
Podem marcar como resolvido.
O problema estava na linha:
Para J De 1 Ate nNumero Faca
É preciso alterar para:
Para J De 1 Ate nNumero-1 Faca
Eu acredito que ele está criando um indice a mais no vetor quando você utiliza J+1