• 0
Sign in to follow this  
Guest --Marcelo --

Ordenar Valores Em Vb

Question

Guest --Marcelo --

Boa Noite,

Estou com uma certa dificuldade para manipular alguns valores em VB. Tenho 4 valores inteiros e preciso classificá-los em ordem decrescente de alguma forma. Basicamente tenho 4 notas de prova, preciso comparar as 4 notas e classificar os 4 alunos como 1º, 2º, 3º e 4º colocado de acordo com a nota de cada um e jogar o nome dos alunos na ordem de classificação na tela.

Se alguém puder me ajudar eu agradeço.

Muito Obrigado,

Marcelo

Share this post


Link to post
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Coloque os valores em um vetor e ordene-o usando algum método de ordenação (como são só 4 valores, eu aconselho o método bolha).

Abraços,

Graymalkin

Share this post


Link to post
Share on other sites
  • 0
Guest --Rafael --
Coloque os valores em um vetor e ordene-o usando algum método de ordenação (como são só 4 valores, eu aconselho o método bolha).

Abraços,

Graymalkin

São variáveis comuns mesmo, consigo jogar os valores num vetor, mas o que é este método bolha??

Share this post


Link to post
Share on other sites
  • 0
Coloque os valores em um vetor e ordene-o usando algum método de ordenação (como são só 4 valores, eu aconselho o método bolha).

Abraços,

Graymalkin

São variáveis comuns mesmo, consigo jogar os valores num vetor, mas o que é este método bolha??

O método bolha consiste em iterar sobre o vetor trocando os valores de posição ao compará-los com os outros. Exemplo:

valores = Array(2, 4, 1, 3)

s = ""
For Each valor In valores
    s = s & valor & ", "
Next valor

MsgBox "Não-Ordenados: " & s

For i = LBound(valores) To UBound(valores)
    For j = LBound(valores) To UBound(valores)
        If valores(i) < valores(j) Then
            temp = valores(i)
            valores(i) = valores(j)
            valores(j) = temp
        End If
    Next j
Next i

s = ""
For Each valor In valores
    s = s & valor & ", "
Next valor

MsgBox "Ordenados: " & s

Certo? ;)

Graymalkin

Share this post


Link to post
Share on other sites
  • 0

é só inverter o sinal de "<" por maior

ficando assim:

If valores(i) > valores(j) Then
    temp = valores(i)
    valores(i) = valores(j)
    valores(j) = temp
End If

Share this post


Link to post
Share on other sites
  • 0

Ola pessoal ... sou novo por aqui e também estou aprendendo agora a lidar com algumas linguagens .. mas na questao de ordenar ... percebir q em toda a sintaxe do laço tenho q colocar TEMP ... Mas como vou coloca sendo q nem o declarei antes em nenhum tipo de variável?

Share this post


Link to post
Share on other sites
  • 0

Boa tarde, 
tenho uma duvida parecida com a do assunto do tópico.

Tenho as seguintes variáveis calculadas em uma macro: qcd, qpb, qcr, qni, qhg, qpfthm

Preciso ordenar as mesmas e acessar os dois menores valores para realizar uma multiplicação entre os mesmos.
Ex : so = primeiro-minimo * segundo mínimo.

Vocês podem me ajudar nisso?

Edited by Vinicius Reis Bastos

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this