之前的没保存丢失了哭了
冒泡排序
直观上是值较小的数字,“浮到”作为继续排序的一组数据的顶部。
操作就是: 从第一项开始,每一项i与下一项i+1比较,如果下一项教小,我们就换位置,把这句话翻译
每次最小的数浮动顶部,那么每次最大排序减少一位,
i 是数组长度
for j% = 1 To i%-1
number(j%)>number(j%+1) Then
t = number(j%+1)
number(j%+1) = number(j%)
number(j%) = t
测试一下
分析321
我们第一次比较两次,213
第二次比较一次 123
Private Sub Command1_Click()
Static number(1 To 3) As Integer
number(1) = 3
number(2) = 2
number(3) = 1
I% = 3
For I% = 3 To 1 Step -1
For j% = 1 To I% - 1
If number(j%) > number(j% + 1) Then
t = number(j% + 1)
number(j% + 1) = number(j%)
number(j%) = t
End If
Next j%
Next I%
For I = 1 To 3
Print number(I%)
Next I
于是我们可以
Private Sub Command1_Click()
Static number(1 To 10) As Integer
msg$ = "Enter number for sort"
msgtitle$ = "Sort Demo"
For i% = 1 To 10
number(i%) = InputBox(msg$, msgtitle$)
Next i%
For i% = 10 To 2 Step -1
For j% = 1 To i% - 1
If number(j%) > number(j% + 1) Then
t = number(j% + 1)
number(j% + 1) = number(j%)
number(j%) = t
End If
Next j%
Next i%
For i = 1 To 10
Print number(i%)
Next i
End Sub
For each …NExt 使用例子
For each … next 专门用于对象或者集合 可以代表任何类型的数组元素,
for each x in MyArray
print x
Next x
For each 与 for next 语句类似,两者都用来指定执行重复次数的一组操作
成员是一个变体变量,
数组中有多少各元素就执行多少次
例子:
输出随机数组中,》50 的元素, 遇到95则停止
Dim arr(1 to 20)
Private Sub Form_Click()
For i=1 To 20
arr(i) = int(Rnd*100)
Next i
For Each Arr_elem In arr
if Arr_elem > 50 then
Print Arr_elem
Sum = Sum + Arr_elem
End if
if Arr_elem > 95 then Exit For
Next arr_elem
Print sum
End Sub
数组的初始化
初始化:就是给数组的元素赋予一个初始值,
目前我们有两种方法 一个是 赋值语句,另一个是 InputBox函数
占用运行时间
Array函数 是一种更加高效的方法,目的是把一个数据集读入某个数组
数组变量名 = Array(数组元素值)
数组变量名 是预先定义的数组名,没有括号
数组变量必须是Variant类型
数组变量的三定义方法
- 显示定义成 Varant
- 定义时不指明类型
- 不定义直接使用
控件数组
例子
在窗体上建立一个命令按钮
Private Sub Co_Click()
Static MaxIdx
If MaxIdx = 0 Then MaxIdx = 1
MaxIdx = MaxIdx + 1
If MaxIdx > 7 Then Exit Sub
Load Optbutton(MaxIdx)
Optbutton(MaxIdx).Top = Optbutton(MaxIdx - 1).Top + 360
Optbutton(MaxIdx).Visible = True
End Sub
Private Sub Command1_Click()
End Sub
Private Sub Option1_Click()
End Sub
Private Sub Optbutton_Click(Index As Integer)
Dim H, W
Picture1.Cls
Picture1.FillStyle = Index
W = Picture1.ScaleWidth / 2
H = Picture1.ScaleHeight / 2
Picture1.Circle (W, H), W / 2
End Sub