954,568 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Another Lottery Program sorting problem

Hi all, I'm new to VB and I am doing a lottery program.

I managed to produce 7 random numbers but I am stuck with the sorting. All I can think of is to use if statements to do comparsion, but that will be a long way to do it and is very stupid if I do that .

I understand that there are bubble sorting, but I am not sure how to implement it.
I have another one which is to store the 7 numbers into 7 labels. And it's similar as below (just that a1 replace with Labal1.Caption and etc)

I will appreciate if you can help. Thanks.

Dim a1, a2, a3, a4, a5, a6, a7 As Integer


Private Sub cmdClick_Click()

    cmdClick.Caption = "Please wait.."
    cmdClick.Enabled = False
    Sleep 2000 ' wait for 2 seconds.
        
    a1 = Random(1, 45)
    
    a2 = Random(1, 45)
        If (a2 = a1) Then
            a2 = Random(1, 45)
        End If
        
    a3 = Random(1, 45)
        If (a3 = a2) Or (a3 = a1) Then
            a3 = Random(1, 45)
        End If
        
    a4 = Random(1, 45)
        If (a4 = a2) Or (a4 = a1) Or (a4 = a3) Then
            a4 = Random(1, 45)
        End If
        
    a5 = Random(1, 45)
        If (a5 = a4) Or (a5 = a3) Or (a5 = a2) Or (a5 = a1) Then
            a5 = Random(1, 45)
        End If
        
    a6 = Random(1, 45)
        If (a6 = a5) Or (a6 = a4) Or (a6 = a3) Or (a6 = a2) Or (a6 = a1) Then
            a6 = Random(1, 45)
        End If
        
    a7 = Random(1, 45)
        If (a7 = a6) Or (a7 = a5) Or (a7 = a4) Or (a7 = a3) Or (a7 = a2) Or (a7 = a1) Then
            a7 = Random(1, 45)
        End If

Text1.Text = a1 & " " & a2 & " " & a3 & " " & a4 & " " _
                    & a5 & " " & a6 & " " & a7
dotNetDummi
Junior Poster in Training
53 posts since Nov 2007
Reputation Points: 10
Solved Threads: 0
 

This is something that I can think of, but I know it will be tedious and not good if I continue.

Dim temp As Integer
    
    If (a2 < a1) Then 'if a2 is smaller than a1
        temp = a2   'store a2 into temp
        a2 = a1     'a2 change to a1
        a1 = temp   'a1 replace with a2(first number) = temp
    End If

    'continue to compare other variables with a1 
    'restart comparison then move on to a2 till a7.
dotNetDummi
Junior Poster in Training
53 posts since Nov 2007
Reputation Points: 10
Solved Threads: 0
 

I did it!

I used two loops and managed to product the results in ascending order.

dotNetDummi
Junior Poster in Training
53 posts since Nov 2007
Reputation Points: 10
Solved Threads: 0
 

Serene Joy,
I am learning visual basic too and also created a Lottery program. What version of visual basic are you using?

cfrutos
Newbie Poster
2 posts since Dec 2008
Reputation Points: 10
Solved Threads: 0
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You