一段VB的程序,看不懂它的作用是什么,求解答

Function GetRnd(ByVal Up As Integer, ByVal Down As Integer, ByVal Num As Integer) As Integer()
Randomize
Dim T() As Integer, Tmp As Integer, i As Integer, j As Integer
ReDim T(Num - 1)
T(0) = Int(Rnd * Up - Down + 1) + Down
Dim B As Boolean

For i = 1 To Num - 1
Do While True
Tmp = Int(Rnd * Up - Down + 1) + Down
B = False
For j = 0 To i - 1
If Tmp = T(j) Then
B = True
End If
Next
If B = False Then
T(i) = Tmp
Exit Do
End If
Loop
Next

For i = 0 To Num - 2
For j = i + 1 To Num - 1
If T(i) > T(j) Then
Tmp = T(i)
T(i) = T(j)
T(j) = Tmp
End If
Next
Next
GetRnd = T
End Function
这是一段VB填空题模拟考试系统的代码,他和数据库连接,题目要随机抽取

产生一个 由 Num  个在Up 与 Down 之间的数字组成的数组,并且数组中的数各不相同。

Function GetRnd(ByVal Up As Integer, ByVal Down As Integer, ByVal Num As Integer) As Integer()
Randomize
Dim T() As Integer, Tmp As Integer, i As Integer, j As Integer
ReDim T(Num - 1)'让T中元素个数为 Num
T(0) = Int(Rnd * Up - Down + 1) + Down'让T(0)为Up ~ Down间的某随机数
Dim B As Boolean

For i = 1 To Num - 1
    Do While True
        Tmp = Int(Rnd * Up - Down + 1) + Down'产生一个Up ~ Down间的某随机数
        B = False
        For j = 0 To i - 1
            If Tmp = T(j) Then'判断这个数是否已经在数组里了
                B = True'已经在数组里
            End If
        Next
        If B = False Then
            T(i) = Tmp'不在数组里的情况,把这个数保存到数组里
            Exit Do
        End If
    Loop
Next

'下面是用冒泡排序法,对数组中的数字排序
For i = 0 To Num - 2
    For j = i + 1 To Num - 1
        If T(i) > T(j) Then
            Tmp = T(i)
            T(i) = T(j)
            T(j) = Tmp
        End If
    Next
Next
GetRnd = T'返回值
End Function

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-23
这个GetRnd函数的作用是产生一个指定范围、指定数量、不重复,并且由小到大排列的随机整数数组
相似回答
大家正在搜