Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Daniel_Oliveira

[Resolvido] [VB.NET] mostrar números em ordem crescente

Recommended Posts

Olá pessoal...

Estou com um exercício que não estou conseguindo resolver, talvez seja algo fácil e eu não consiga ver =/

 

O problema é o seguinte, devo digitar 6 números e, ao clicar no botão, os 6 números são exibidos em labels de forma crescente.

Print para facilitar

Imagem Postada

 

Meu código até agora:

Dim aux(5) As Integer
If IsNumeric(txt_n1.Text) And IsNumeric(txt_n2.Text) And IsNumeric(txt_n3.Text) And IsNumeric(txt_n4.Text) And IsNumeric(txt_n5.Text) Then
            For cont = 0 To 5
                If (Val(txt_n1.Text) < Val(txt_n2.Text)) Then
                    aux(cont) = txt_n1.Text
                Else
                    aux(cont) = txt_n2.Text
                End If
                If (aux(cont) > Val(txt_n3.Text)) Then
                    aux(cont) = txt_n3.Text
                End If
                If (aux(cont) > Val(txt_n4.Text)) Then
                    aux(cont) = txt_n4.Text
                End If
                If (aux(cont) > Val(txt_n5.Text)) Then
                    aux(cont) = txt_n5.Text
                End If
                If (aux(cont) > Val(txt_n6.Text)) Then
                    aux(cont) = txt_n6.Text
                End If
            Next
            lbl_n1.Text = aux(0)
            lbl_n2.Text = aux(1)
            lbl_n3.Text = aux(2)
            lbl_n4.Text = aux(3)
            lbl_n5.Text = aux(4)
            lbl_n6.Text = aux(5)
        End If
Com este código apenas o menor número é exibido em todos os labels.

Não sei uma forma de excluir do próximo loop o textbox que já estiver sido utilizado, se não poderia tentar fazer... O problema é que em todo loop ele vai pegar o mesmo resultado, já que faz a comparação tudo denovo com os menos números o/

 

Alguém pode me explicar como fazer isto funcionar?

Se for possível, sem utilizar outras funções (como de mostrar os elementos do array em ordem crescente), já que teóricamente não aprendemos isto ainda no curso.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra melhorar esse loop veja a API de Reflection do VB.NET:

http://www.tek-tips.com/faqs.cfm?fid=5698

 

Procure sobre reflection API no google antes para entender o que significa.

 

Ordenando arrays:

http://www.builderau.com.au/program/csharp/soa/Easily-sort-values-with-the-NET-Array-class-s-Sort-method/0,339028385,339272377,00.htm

 

Acredito que não há motivo para não usar esse método de ordenação já que um programador tem que saber pesquisar soluções, nem sempre ele terá um professor ao seu lado na empresa pra resolver um problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui, valeu...

O código ficou assim:

 

If IsNumeric(txt_n1.Text) And IsNumeric(txt_n2.Text) And IsNumeric(txt_n3.Text) And IsNumeric(txt_n4.Text) And IsNumeric(txt_n5.Text) Then

aux(0) = Val(txt_n1.Text)

aux(1) = Val(txt_n2.Text)

aux(2) = Val(txt_n3.Text)

aux(3) = Val(txt_n4.Text)

aux(4) = Val(txt_n5.Text)

aux(5) = Val(txt_n6.Text)

Array.Sort(aux)

lbl_n1.Text = aux(0)

lbl_n2.Text = aux(1)

lbl_n3.Text = aux(2)

lbl_n4.Text = aux(3)

lbl_n5.Text = aux(4)

lbl_n6.Text = aux(5)

End If

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.