Next i End Sub
----------------------------------------------------------------------------------------------------- Private Sub Cmd_maopao_Click()
Dim imin As Integer, i As Integer, j As Integer, temp As Integer Dim v
For i = 1 To UBound(a) '用UBound(a)测试 a的上界,得到比较次数 '**********FILL********** For j = 1 to ubound(a)-i '在每一次比较中,对1到UBound(a)-i的元素两两相邻比较,较大的数沉底 If a(j) > a(j + 1) Then ' 次序不对即交换 temp = a(j) a(j) = a(j + 1) a(j + 1) = temp End If Next j Next i
Picture1.Print vbCrLf + \冒泡排序后的序列:\ For Each v In a Picture1.Print v; Next v End Sub
------------------------------------------------------------------------------------------------------------------------- '删除数组中重复的数据 Private Sub Cmd_chongfu_Click()
Dim k As Integer, i As Integer, j As Integer Dim t As Integer, n As Integer, v k = UBound(a) n = 1 Do While n < k i = n + 1 Do While i <= k
'**********FILL********** If a(n)=a(i) then '找到重复的元素 For j = i To k - 1 a(j) = a(j + 1)
'将后面的元素依次前移一位,则删除第i个元素 Next j k = k - 1
ReDim Preserve a(k) '删除元素后重新定义数组大小 Else i = i + 1
End If Loop n = n + 1 Loop
Picture1.Print vbCrLf + \删除重复数据后的序列:\ For Each v In a Picture1.Print v; Next v End Sub
------------------------------------------------------------------------------------------------------------------------ '对有序数列插入数据 Private Sub Cmd_charu_Click()
Dim i As Integer, k As Integer, x As Integer, n As Integer Dim v, s As String n = UBound(a)
s = InputBox(\请输入需要查找的数:\ If s = \
MsgBox \您输入的为空,退出该过程。\ Exit Sub Else x = Val(s) End If For k = 1 To n
If x < a(k) Then Exit For '查找欲插入数X在数组中的位置 Next k
'**********FILL********** Redim preserve a(n+1) '数组增加一个元素
For i = n To k Step -1 '数组元素后移一个位置,为插入数留出一个位置 a(i + 1) = a(i) Next i
a(k) = x '将x插入到空位上 Picture1.Print vbCrLf + \插入数据后的序列:\ For Each v In a Picture1.Print v; Next v End Sub
--------------------------------------------------------------------------------------------------------------------------- Private Sub Command1_Click() End End Sub
二、随机生成一位数组成的4×4二维矩阵显示在图片框1中,将其转置矩阵显示在图片框2中。 '随机生成1位数组成的4×4二维矩阵显示在图片框1中, '要求: 用两种方法实现矩阵转置?
Option Explicit Option Base 1 Dim a(4, 4) As Integer
------------------------------------------------------------------------------------------------- Private Sub Cmd_end_Click() End End Sub
-------------------------------------------------------------------------------------------------- Private Sub Cmd_shengcheng_Click() '生成矩阵同时输出在图片框1上 Dim i As Integer, j As Integer Randomize For i = 1 To 4 For j = 1 To 4
'**********FILL********** a(i,j)=int(rnd*9+1)
Picture1.Print a(i, j); Next j Picture1.Print Next End Sub
--------------------------------------------------------------------------------------------------------------------------- Private Sub Cmd_zhuanzhi1_Click() '利用新定义的矩阵得到转置矩阵 Dim i As Integer, j As Integer Dim b(4, 4) As Integer Picture2.Cls For i = 1 To 4
For j = 1 To 4
'**********FILL********** b(i,j)=a(j,i)
Picture2.Print b(i, j); Next j Picture2.Print Next i End Sub
-------------------------------------------------------------------------------------------------------------
Private Sub Cmd_zhuangzhi2_Click() '利用a(i,j)和a(j,i)的位置关系来实现本身的转置 Dim i As Integer, j As Integer, temp As Integer Picture3.Cls For i = 1 To 4 For j = 1 To i temp = a(i, j)
'**********FILL**********
a(i,j)=a(j,i) '**********FILL********** a(J,i)=temp Next j Next i For i = 1 To 4 For j = 1 To 4
Picture3.Print a(i, j); Next j Picture3.Print Next i End Sub
三、将{ 10, 50, 23, 56, 78, 50, 58, 61, 79, 56}这一系列数放入到一维数组中,显示在窗体上,并求最大值、最小值、平均值。
'1. 将{ 10, 50, 23, 56, 78, 50, 58, 61, 79, 56}这一系列数放入到 '一维数组中,显示在窗体上,并求最大值、最小值、平均值。要求: '使用Array函数、Inputbox函数两种方法给一维数组赋值。 ------------------------------------------------------------------------------- Private Sub Cmd_array_Click() '利用Array函数生成一维数组 Dim a, i%, max%, min%, avg As Double a = Array(10, 50, 23, 56, 78, 50, 58, 61, 79, 56)
'利用Array函数给数组赋值时,函数返回值必须是一个变体型数据 max = a(0): min = a(0): avg = a(0) Me.Cls
Print \利用ARRAY函数给数组赋一组给定的数值:\ For i = LBound(a) + 1 To UBound(a) avg = avg + a(i) Print a(i);
'**********FILL********** If max
If min > a(i) Then min = a(i) Next i
Print vbCrLf & \最大值为:\最小值为:\平均值为:\ End Sub
--------------------------------------------------------------------------------------------------------------- Private Sub Cmd_inputbox_Click() '利用Inputbox函数给一维数组赋值
Dim a(9) As Integer, i As Integer, max%, min%, avg As Double Dim v
'**********FILL********** For i=0 to 9
a(i) = InputBox(\请输入第\数\
Next i Me.Cls
Print \利用Inputbox函数给数组元素逐个赋值:\ For Each v In a ' 利用FOR-EACH 语句输出数组 Print v; Next v
'**********FILL********** Max=a(0) min = a(0) avg = a(0) For i = 1 To 9
'**********FILL********** avg=avg+a(i) If max < a(i) Then max = a(i) If min > a(i) Then min = a(i) Next i Print
Print \最大值为:\最小值为:\平均值为:\End Sub
四、从一个由字母与数字想混的字符串中选出数字串,并把数字串构成的数写入列表框list1中。 Option Explicit Option Base 1 '筛选按钮代码
------------------------------------------------------------------------------------------------- Private Sub Command1_Click()
Dim s As String, k As Integer, c() As String Dim p As String, i As Integer s = Text1 k = 1
For i = 1 To Len(s)
If Mid(s, i, 1) >= \ '**********FILL********** P =p & mid(s,i,1)
ElseIf Mid(s, i + 1, 1) >= \ If p <> \
'**********FILL********** Redim preserve c(k) c(k) = p
'**********FILL********** K=k+1 p = \ End If End If