Finding Min in set of numbers

kc602

New member
Joined
Nov 18, 2003
Messages
1
Hi! I am having trouble with one little part of my program

I have to find the min in a collection of data thats already been placed in a text file in the bin folder.

I know that if I were finding the largest, I could set Dim largest = 0, but this does not work for min. We cannot use negative numbers so the smallest would end up always being zero.
I need to know how to get around that.

Code:
Private Sub btnFindSmallest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFindSmallest.Click
        Finds smallest of a collection of numbers.
        Dim smallest, num As Double
        smallest = 999
        Dim sr As IO.StreamReader = IO.File.OpenText("DATA.TXT")
        Do While sr.Peek <> -1
            num = CDbl(sr.ReadLine)
            If num < smallest Then
                smallest = num
            End If
        Loop
    End Sub

where I have smallest = 999, I need it to be able to not just check up to 999 but to infinity if necessary because the smallest will always be zero if I set it equal to zero.

Thanks.
 
Set it to Double.MaxValue - thats the highest value a Double can hold, approximately 1.79769313486232e308.

[edit]Heh, doh - I shouldve realized Iceplug was going to reply to this thread. Got to it through Whos Online.[/edit]
 
You dont have to pre set the smallest variable.

Would it not be better to make the smallest equal to the first line, then input the rest and compair, this will work no matter what variable type you use!
Code:
Private Sub btnFindSmallest_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFindSmallest.Click
        Finds smallest of a collection of numbers.
        Dim smallest, num As Double
        Dim sr As IO.StreamReader = IO.File.OpenText("DATA.TXT")
        if sr.peak <> -1 then
        smallest = cdbl(sr.readline)
        Do While sr.Peek <> -1
            num = CDbl(sr.ReadLine)
            If num < smallest Then
                smallest = num
            End If
        Loop
        end if
    End Sub
I think that should do it...
 
Back
Top