![]() | การสุ่มหลายค่า(ซ้ำและไม่ซ้ำ) | ![]() |
ข้อควรทราบ |
|
การเขียน html ส่งค่าเงื่อนไข (แบบซ้ำได้) |
form รับค่า 3 ค่า แต่ต้องรับให้ถูกต้อง เพราะจะนำค่าไปตรวจเงื่อนไข ก่อนนำไปประมวลผลจริง ประกอบด้วย ค่าสูงสุด ค่าต่ำสุด และจำนวนที่ต้องการ โดยฟอร์มนี้อยู่ในแฟ้ม asprun1.htm ซึ่งจะไปสั่งให้โปรแกรม asprun1.asp ทำงานอีกทีหนึ่ง |
ตัวอย่างฟอร์ม /aspran1.htm | Source code ของ /aspran1.htm |
รับค่าตัวเลข ไปใช้ในการสุ่ม (หลักการนี้ อาจได้ผลลัพธ์ซ้ำกันได้) Click เรียกเฉพาะ form นี้ในหน้าต่างใหม่ |
<html> <title>สุ่มหลายค่า</title> <body bgcolor=#ffffdd><font face="microsoft sans serif"> รับค่าตัวเลข ไปใช้ในการสุ่ม (หลักการนี้ อาจได้ผลลัพธ์ซ้ำกันได้)<br> <form action=http://thaiall.webhostme.com/aspran1.asp method=post> ค่ามากที่สุด : <input type="text" name=nummax size=5 value=999> <br> ค่าน้อยที่สุด : <input type="text" name=nummin size=5 value=1> <br> จำนวนเลขที่ต้องการสุ่ม : <input type="text" name=numamt size=5 value=15> <br> <input type=submit value="Random"> <input type=reset value=Reset> </form> </body></html> |
โปรแกรม asp ที่ทำหน้าสุ่ม (แบบซ้ำได้) |
โปรแกรมนี้ใช้หลักการสุ่มค่าด้วย randomize และ rnd แล้วก็เข้า loop ให้ได้เลขเท่าจำนวนที่ต้องการ ซึ่งเป็นหลักการง่าย ๆ ธรรมดา โปรแกรมในตัวอย่างนี้ จะรอรับค่าที่ส่งมาจาก asprun1.htm ทั้งหมด 3 ค่า |
Source code ของ /aspran1.asp |
<html><head><title>ผลลัพธ์จากการสุ่ม (Random result)</title></head> <body bgcolor="#ffffdd"><font face="microsoft sans serif"> <b>ผลลัพธ์จากการสุ่ม (Random result)</b><br> หลักการนี้อาจได้ผลลัพธ์ที่ซ้ำกันได้<br> <% numamt = request.form("numamt") nummax = request.form("nummax") nummin = request.form("nummin") error = 0 if (nummax <= nummin) or (numamt <= 0) then response.write( "<hr>ค่าที่ระบุในเงื่อนไขผิดพลาด โปรดกลับไประบุใหม่") error = 1 else randomize for i = 1 to numamt x = int(nummin + (rnd * ( nummax - nummin + 1 ))) response.write( x & "<br>") next end if %> </body></html>Click here to open this source code in new windows |
การเขียน html ส่งค่าเงื่อนไข (แบบไม่มีการซ้ำ) |
form รับค่า 3 ค่า แต่ต้องรับให้ถูกต้อง เพราะจะนำค่าไปตรวจเงื่อนไข ก่อนนำไปประมวลผลจริง ประกอบด้วย ค่าสูงสุด ค่าต่ำสุด และจำนวนที่ต้องการ โดยฟอร์มนี้อยู่ในแฟ้ม asprun2.htm ซึ่งจะไปสั่งให้โปรแกรม asprun2.asp ทำงานอีกทีหนึ่ง |
ตัวอย่างฟอร์ม /aspran2.htm | Source code ของ /aspran2.htm |
รับค่าตัวเลข ไปใช้ในการสุ่ม (หลักการนี้ จะได้ผลลัพธ์ไม่ซ้ำกัน) Click เรียกเฉพาะ form นี้ในหน้าต่างใหม่ |
<html><title>สุ่มหลายค่าไม่ซ้ำกัน</title> <body bgcolor=#ffffdd><font face="microsoft sans serif"> รับค่าตัวเลข ไปใช้ในการสุ่ม (หลักการนี้ จะได้ผลลัพธ์ไม่ซ้ำกัน)<br> <form action=http://thaiall.webhostme.com/aspran2.asp method=post> ค่ามากที่สุด : <input type="text" name=nummax size=5 value=999> <br> ค่าน้อยที่สุด : <input type="text" name=nummin size=5 value=1> <br> จำนวนเลขที่ต้องการสุ่ม : <input type="text" name=numamt size=5 value=15> <br> <input type=submit value="Random"> <input type=reset value=Reset> </form> </body></html> |
โปรแกรม asp ที่ทำหน้าสุ่ม (แบบไม่มีการซ้ำ) |
โปรแกรมนี้ใช้หลักการสุ่มค่าด้วย randomize และ rnd แต่ต่างกับโปรแกรมชุดแรกที่สามารถซ้ำกันได้ แต่แบบนี้ซ้ำกันไม่ได้ จึงต้องนำ array เข้ามาเก็บค่า เพื่อใช้ตรวจสอบค่าเก่า เพื่อไม่ให้ซ้ำกัน โปรแกรมในตัวอย่างนี้ จะรอรับค่าที่ส่งมาจาก asprun2.htm ทั้งหมด 3 ค่า |
Source code ของ /aspran2.asp |
<html><head><title>ผลลัพธ์จากการสุ่ม (Random result)</title></head> <body bgcolor="#ffffdd"><font face="microsoft sans serif"> <b>ผลลัพธ์จากการสุ่ม (Random result)</b><br> หลักการนี้ จะได้ผลลัพธ์ที่ไม่ซ้ำกัน<br> <% numamt = int(request.form("numamt")) nummax = int(request.form("nummax")) nummin = int(request.form("nummin")) error = 0 if (numamt > ( nummax - nummin )) or (numamt = 0) then response.write( "<hr>ค่าที่ระบุในเงื่อนไขผิดพลาด โปรดกลับไประบุใหม่") error = 1 else randomize dim arr(99999) i = 1 do while i <= numamt x = int(nummin + (rnd * ( nummax - nummin + 1))) found = 0 for j = 1 to i - 1 if arr(j) = x then found = 1 next if found = 0 then arr(i) = x i = i + 1 end if loop for k = 1 to numamt response.write( arr(k) & "<br>") next end if %> </body></html>Click here to open this source code in new windows |
แบบฝึกหัด |
|