=================================窗体代码======================================
Private Sub CommandButton1_Click()
Dim n%, i%, sr$
n = InputBox("请输入随机数个数(不能大于90)")
If n < 91 Then
Call 两位随机正整数(n)
Call 冒泡排序(arr)
Call 数组转字符串(arr, sr)
TextBox1.Text = sr
Else
MsgBox "该数值不能大于90"
End If
End Sub
Private Sub CommandButton2_Click()
Dim sr$, sr1$
Call 区分奇偶(sr, sr1)
TextBox2.Text = sr
TextBox3.Text = sr1
End Sub
Private Sub CommandButton3_Click()
Dim i%, sr$, s%, n%, arrs()
For i = 0 To UBound(arr)
n = arr(i)
If 素数(n) Then
ReDim Preserve arrs(x)
arrs(x) = arr(i)
x = x + 1
s = s + arr(i)
End If
Next
Call 冒泡排序(arrs)
Call 数组转字符串(arrs, sr)
TextBox4.Text = sr
TextBox5.Text = "素数和:" & s
End Sub
Private Sub CommandButton4_Click()
End
End Sub
============================下面是模块代码========================================
Public arr
Sub 两位随机正整数(n As Integer)
Set d = CreateObject("scripting.dictionary")
Do
num = 10 + Int(Rnd * 90)
If Not d.exists(num) Then
d(num) = ""
i = i + 1
End If
Loop Until i = n
arr = d.keys
End Sub
Sub 数组转字符串(arr, sr As String)
For i = 0 To UBound(arr)
If (i + 1) Mod 10 = 0 Then
sr = sr & arr(i) & vbCrLf
Else
sr = sr & arr(i) & ","
End If
Next
If (UBound(arr) + 1) Mod 10 <> 0 Then
sr = Left(sr, Len(sr) - 1)
End If
End Sub
Sub 区分奇偶(sr As String, sr1 As String)
Dim m%, n%, i%
Dim arrj(), arro()
m = -1: n = -1
For i = 0 To UBound(arr)
If arr(i) Mod 2 = 1 Then
m = m + 1
ReDim Preserve arrj(m)
arrj(m) = arr(i)
Else
n = n + 1
ReDim Preserve arro(n)
arro(n) = arr(i)
End If
Next
Call 选择排序(arrj)
Call 冒泡排序(arro)
Call 数组转字符串(arrj, sr)
Call 数组转字符串(arro, sr1)
End Sub
Sub 选择排序(arr)
Dim temp, x, y, t, iMax, k, k1, k2
For x = UBound(arr) To 1 + 1 Step -1
iMax = 1 '最大的索引
For y = 0 To x
If arr(y) > arr(iMax) Then iMax = y
Next y
temp = arr(iMax)
arr(iMax) = arr(x)
arr(x) = temp
Next x
End Sub
Sub 冒泡排序(arr)
Dim temp, x, y, t, k
For x = 0 To UBound(arr) - 1
For y = x + 1 To UBound(arr) '只和当前数字下面的数进行比较
If arr(x) > arr(y) Then '如果它大于它下面某一个数字
temp = arr(x)
arr(x) = arr(y)
arr(y) = temp
End If
Next y
Next x
End Sub
Function 素数(n As Integer) As Boolean
素数 = True
For i = 2 To n - 1
If n / i = Int(n / i) Then
素数 = False
Exit For
End If
Next
End Function