ASP 101 - Active Server Pages 101 - Web06
The Place ASP Developers Go!

Please visit our partners

Windows Technology Windows Technology
15 Seconds
ASP 101
ASP Wire
VB Forums
VB Wire
internet.commerce internet.commerce
Partners & Affiliates

ASP 101 is an site
ASP 101 is an site
Internet News
Small Business
Personal Technology

Corporate Info
Tech Jobs
E-mail Offers

ASP 101 News Flash ASP 101 News Flash

ASP Source Code:
Dim intLowerBound    ' Lower bound of the random number range
Dim intUpperBound    ' Upper bound of the random number range
Dim intRangeSize     ' Size of the range
Dim sngRandomValue   ' A random value from 0 to intRangeSize
Dim intRandomInteger ' Our final result - random integer to return
' Retrieve lower and upper bound requests if they're there
' o/w set to defaults of 0 and 100
If IsNumeric(Request.QueryString("lowerbound")) Then
	intLowerBound = CLng(Request.QueryString("lowerbound"))
	intLowerBound = 0
End If
If IsNumeric(Request.QueryString("upperbound")) Then
	intUpperBound = CLng(Request.QueryString("upperbound"))
	' Add a line to deal with default case of 0 to 0.
	' This really isn't neccessary, but I do it so the
	' sample doesn't default to generating a number between
	' 0 and 0 and always return 0 when no bounds are provided.
	If intLowerBound = 0 And intUpperBound = 0 Then intUpperBound = 100
	intUpperBound = 100
End If
' Check for people asking for a number from in an inappropriate
' range (ie: 50 to 10) and swap the bounds
If intLowerBound > intUpperBound Then
	' I really should've declared a temporary variable for this
	' swapping, but I was lazy and this one was already defined
	' and I don't use it till later... oh all right I'll do it
	' the "right" way... actually even this is bad... I should've
	' defined this up top... so sue me... hey it's free code what
	' do you want from me?
	Dim iTemp
	iTemp = intLowerBound
	intLowerBound = intUpperBound
	intUpperBound = iTemp
End If
' Initialize the random number generator.
' Randomize can actually take parameters telling it how to initialize
' things, but for the most you'll just want to call it without passing
' it anything.
' Generate our random number.
' The Rnd function does most of the work.  It returns a value in the
' range 0 <= value < 1 so to generate a random integer in the specified
' range we need to do some calculation.  Specifically we take the size
' of the range in which we want to generate the number (add 1 so the
' upper bound can be generated!) and then multiply it by our random
' element.  Then to place the value into the correct range of numbers
' we add the lower bound.  Finally we truncate the number leaving us
' with the integer portion which is always somewhere between the
' lower bound and upper bound (inclusively).
' Find range size
intRangeSize = intUpperBound - intLowerBound + 1
' Get a random number from 0 to the size of the range
sngRandomValue = intRangeSize * Rnd()
' Center the range of possible random numbers over the desired result set
sngRandomValue = sngRandomValue + intLowerBound
' Convert our value to an integer
intRandomInteger = Int(sngRandomValue)
' The above 4 lines are equivilent to the popular shorter version
' below.  I split it up so I could indicate what each step is doing.
' intRandomInteger = Int((intUpperBound - intLowerBound + 1) * Rnd + intLowerBound)
' Show out output indicating what we've done and our result.
You asked for a random number between <B><%= intLowerBound %></B> and <B><%= intUpperBound %></B>.<BR>
The computer returned: <B><%= intRandomInteger %></B><BR>
<!-- Build the form for user input -->
<FORM ACTION="random_number.asp" METHOD="get" NAME="frmRandomNumberBounds">
Generate a random number between
<INPUT TYPE="text" NAME="lowerbound" VALUE="<%= intLowerBound %>" SIZE="5" MAXLENGTH="5"></INPUT>
<INPUT TYPE="text" NAME="upperbound" VALUE="<%= intUpperBound %>" SIZE="5" MAXLENGTH="5"></INPUT>
<INPUT TYPE="submit"></INPUT>

Back the the Sample Output

Back to the Sample Index

Home |  News |  Samples |  Articles |  Lessons |  Resources |  Forum |  Links |  Search |  Feedback
The Network for Technology Professionals



Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers