UGN Security
Posted By: Lucid Help with VB.net Program - 12/03/04 05:42 AM
The purpose of the program is to simulate rolling a six sided die. Then the program keeps track of the frequency of each roll, the number of total rolls and the probability . My problem is that every time my program simulates rolling a one it prints to Frq1 and does not increment correctly. I want it to increment each time by one starting from a value of zero. Any help would be greatly appreciated.
Code:

Private Sub Calculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Calculate.Click
Dim Frequency As Double
Dim Probability As Decimal
Dim DieNumber As Integer
Dim One, Two, Three, Four, Five, Six As Integer


One = 0

IncrementCounter:

Randomize()
DieNumber = CInt(Int((6 * Rnd()) + 1))
Results.Items.Add(DieNumber)

Select Case True
Case DieNumber = 1
One = One + 1


Frq1.Items.Add(One)
GoTo IncrementCounter

End Select
Posted By: n0mel Re: Help with VB.net Program - 12/12/04 09:33 PM
You know, a do loop would work just as well as a goto. People might make fun of you if you use gotos. smile

Look at where your end select is. (wink wink).

Not that your way is wrong, but another way to do what you're doing is to use an array, such as

dim dienumbers(5) as integer

then, you could do

DieNumber = CInt(Int((6 * Rnd()) + 1))
other stuff
dienumbers(dienumber-1) = dienumbers(dienumber-1) + 1
other stuff
Freq1.items.add(dienumbers(dienumber-1))

Since the array starts at 0, all values for one would be stored in dienumbers(0), and all from 6 would be in dienumbers(5). If you didn't mind, you could waste the first element of the array and use dim dienumbers(6) and dienumbers(dienumber) = blah.

The benefit of this way is not as much typing for you smile

This is the first time I've seen vb.net code. Doesn't look too different from vb6. What is with the ") Handles Calculate.Click"? Can you specify the subroutine for an event?
© UGN Security Forum