如何用viusal basic抽隨機數1-26,不可以重覆

2007-03-03 6:01 am
如何用viusal basic6.0抽隨機數1-26,不可以重覆
print晒喺張form度
thx

回答 (2)

2007-03-03 6:16 pm
✔ 最佳答案
其中一個做法:
Dim Printed() As Integer
Dim tmp As Integer
Dim i As Integer
Dim j As Integer
Dim BlnRepeat As Boolean
ReDim Printed(0)
Do While UBound(Printed) <> 26
VBA.Randomize
tmp = Int(VBA.Rnd * 26 + 1)
BlnRepeat = False
For j = 1 To UBound(Printed)
If Printed(j) = tmp Then
BlnRepeat = True
Exit For
End If
Next
If BlnRepeat = False Then
ReDim Preserve Printed(UBound(Printed) + 1)
Printed(UBound(Printed)) = tmp
End If
Loop
For i = 1 To 26
Debug.Print Printed(i)
Next
參考: 自己
2007-03-03 6:27 pm
抽隨機數1-26可根據以下公式決定:
Int(Rnd*(Upper-Lower+1)+Lower
Int =取整數
Upper=較大的數(在此是26)
Lower=較少的數(在此是1)
整條公式在此便變成:
Int(Rnd*26)+1
整個程式碼是:
Dim a As Integer-------------------------------定義a為整數
Private Sub Command1_Click
Randomize-----------------用上面的公式時要打此字,不可打Randomise
a=Int(Rnd*26)+1
Print a----------------------把a的值顯示在Form上
End Sub
此外,Print a 這句可轉為:
Text1.Text=a---------------------把a的值顯示在Text上
Label1.Caption=a-------------- 把a的值顯示在Label上
要不重覆的話,要最少有兩個隨機數同時出現才行,程式碼是:
Dim a,b As Integer-------------------------------定義a,b為整數
Private Sub Command1_Click
Randomize-----------------用上面的公式時要打此字,不可打Randomise
a=Int(Rnd*26)+1
b=Int(Rnd*26)+1
Text1.Text=a----------------------把a的值顯示在Text1上
Text2.Text=b----------------------把b的值顯示在Text2上
If a=b Then------------------------假設a的值等於b的值
Text1.Text= " "---------Text1t的顯示為空白
Text2.Text= " "---------Text2的顯示為空白
End If-----------用If...Then後要打這句
End Sub
注意:
Text1.Text=a 和 Text2.Text=b 可轉為:
Label1.Caption=a----------------------把a的值顯示在Label1上
Label2.Caption=b----------------------把b的值顯示在Label2上
Text1.Text= " " 和 Text2.Text= " " 可轉為:
Label1.Caption = " "---------Label1t的顯示為空白
Label2.Caption = " "---------Label2t的顯示為空白

2007-03-04 18:07:02 補充:
以上的指令是要於開了 VB5 或 VB6,再加所需object(e.g.Text,Label,Command Button...),再進入Code window,輸入指令,才能執行。
參考: 我在學Visual Basic


收錄日期: 2021-04-13 14:47:07
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20070302000051KK04015

檢視 Wayback Machine 備份