Module Module1
' ข้อ 4.3.2 สุ่มตัวเลขแบบไม่ซํ้า
Sub Main()
Randomize()
Dim a(99) As Double ' ประกาศตัวแปรเป็นชนิดอาร์เรย์
Dim i, j, max As Double
Dim found As Boolean
Console.Write("Random Value = ")
max = Int32.MinValue ' กำหนดให้ max มีค่าตํ่าที่สุดของข้อมูลชนิด int32
For i = 0 To 99
found = False ' ให้ found เป็นเท็จสุ่มเลขขึ้นมา 100 จำนวน
Dim t As Double = CInt(Rnd() * 99)
For j = 0 To i - 1
If a(j) = t Then ' ถ้า a(j) = t ให้ found เป็นจริง
found = True
End If
Next
If found Then ' ถ้า found เป็นจริงให้ลบค่า i ออก 1
i = i - 1
Else
a(j) = t ' ให้ a(j) เก็บค่า t
If a(j) Mod 2 = 0 Then ' ให้ a(j) mod 2 = 0 เพื่อหาเลขคู่
Console.Write(a(j) & " ") 'แสดงเลขคู่ออกจอภาพ
If a(j) > max Then ' หาค่าสูงสุดของจำนวนที่เป็นเลขคู่
max = a(j)
End If
End If
End If
Next
Console.WriteLine(" ")
Console.WriteLine("Max Value Even ----------> " & max)
End Sub
End Module
Date :
2015-05-04 20:14:41
By :
sawai
No. 3
Guest
Code (VB.NET)
'เอาตัวแปรกี่ตัวก็ประกาศไปครับ
dim RanA(20) as interger ' ตัวแปรแบบอาเรย์ 20 ตัว
RanA(1) = (Rnd() * 99)
For i As Integer = 2 To 20
RanA(i) = (Rnd() * 99)
CheckAgain:
For j As Integer = 1 To i - 1
If RanA(i) = RanA(j) Then
RanA(i) = (Rnd() * 99)
GoTo CheckAgain
End If
Next j
Next i
'เราจะได้ค่า ranA(1) ถึง ranA(20) ก็เอาไปใช้ครับ รับรองไม่ซ้ำชัว