VB程序设计语言 主讲教师:王 杨
多重循环 For i = 1 to 10 do while 条件 循环体 loop Next i While 条件 do while 条件 Wend While 条件 for i = 1 to 10 循环体 next i Wend
For i = 1 to 10 for j = 1 to 5 循环体 next j Next i For i = 1 to 10
静态数组 Dim m(1 to 9) as integer Dim a(1 to 3,1 to 3) as integer a(1,1) b% …… f% i% Dim m(1 to 9) as integer m(1) m(2) …… m(5) m(9) Dim a(1 to 3,1 to 3) as integer a(1,1) a(1,2) a(1,3) a(2,1) a(2,2) a(2,3) a(3,1) a(3,2) a(3,3)
数组的操作 数组声明 数组赋值 数组运算 数组输出 Option base 1 Private sub Command1_click( ) Dim mark(100) as integer …… End sub Option base 1
作业1 if option1.value=true then m=3 Elseif option2.value=true then m=5 End if n= text1.text n=n+1 If n mod m<>0 then For i = 1 to 5 Next i Do Loop While n mod m <>0 Picture1.print n
作业2 List Additem For Listcount text
求一个班全体学生的平均成绩 Dim mark!(), n As Integer n=Val(InputBox(“请输入该班的学生人数")) ReDim mark!(1 To n) For i = 1 To n mark(i) = InputBox("输入" & i & "位学生的成绩") aver = aver + mark(i) Next i aver = aver / n aver = 0
动态数组 Dim a( ) As Integer … n = 10 ReDim a(n) As Integer ReDim a (12) As integer ReDim Preserve a (12) As integer ReDim larray(n,m) … ReDim Preserve larray(n+1,m) ReDim Preserve larray(n,m+1) Preserve参数的功能是不清除前一次数组元素的赋值, 但使用该参数只能改变数组最后一维的大小。 ReDim [Preserve] 变量 (下标) As 数据类型
利用Array()函数 数组变量名=Array(数组元素值) a数组 Dim a As Variant, b As Variant 1 2 3 4 5 a(0) a(1) a(2) a(3) a(4) Dim a As Variant, b As Variant a = Array(1,2,3,4,5) b = Array("abc", "def", "67") b数组 abc def 67 b(0) b(1) b(2) For i = 0 To UBound(a) Print a(i); Next i For i = 0 To UBound(b) Print b(i);
数组分类 Dim 数组名(下标1[,下标2…]) [As 类型] 静态数组 (声明时确定了大小的数组) 数组 动态数组 (声明时没有确定大小的数组) 一维数组 (下标数为1个的数组) 数组 多维数组 (下标数为2个以上的数组)
控件数组 由一组相同类型的控件组成 共用一个相同的控件名字,即其所有元素的Name属性相同; 数组中的每个控件都有唯一的索引(Index)属性值,即下标; 除Name和Index属性外其它属性可以相同也可以不同; 共享同样的事件过程,通过传送Index参数来进行区分。 Private Sub Option1_Click(Index As Integer) … End Sub
控件数组操作 建立控件数组 删除控件数组 第一种方法,通过改变已有控件名称添加控件数组元素 第二种方法,通过复制现存控件添加数组元素 改变一个控件的“Name”属性值,并把Index属性置为空 (不是0),
课后作业
思考 西南石油大学运动会开幕式比赛,各学院得分 10个评委打分(去掉一个最高分,去掉一个最低分,求平均分) Dim a(1 to 10) as integer Max=a(1) For i = 2 to 10 If a(i)>max then Max=a(i) Endif Next I
总结 动态组数 数组的基本操作 控件数组