vb数组[最新]
本节课教学目标:通过讲授和学生的动手练习~使学生了解VB数组的定义和应用
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
。
教学类型:在多媒体教室直观讲授~引导学生进行简单程序设计操作。加深对本次课内容的理解。
教学内容:静态数组、动态数组
讲授45分钟
第五章 数组与过程
前面所讨论的都是离散的单个数据和变量~即在某一个时刻一个变量只对应一个数据~通常又称之为简单变量。如果所处理的数据量很大~利用简单变量就显得不方便~甚至是十分困难的。例如要处理一个班级40名同学一门课程的成绩~用简单变量最少要40个,若又要表示讨论全班6门课程呢,全年级10个班呢,
为了解决大批量的数据处理问题~VB中提供了数组,Array,变量。数组是一种重要的数据结构~在许多程序设计语言中~都要直接或间接用到数组这种数据结构。
5.1静态数组
一、数组的概念
在VB中~如果把一组有序的数或变量作为一个整体来处理~这一组数或变量称为数组~数组中的每一个数或变量称为数组元素~每一个数组给定一个名称~叫做数组名~一个数组中各个数组元素之间的区别用数组名的下标来表示~放在数组名后的圆括号内。数组中的任意一个数组元素都可以存放一个数据~和使用简单变量一样~所以又称数组元素为下标变量。
例如:可以用A来表示一个班50个同学的数学成绩~用A,1,表示1号同学的成绩,A,2,表示2号同学的成绩,A,3,表示3号同学的成绩,...,A,50,表示第50号同学的成绩。则A为数组名~A,1,、A,2,、A,3,等都称为A数组的元素。
又如~可以用B数组表示全班同学
语文
八上语文短文两篇二年级语文一匹出色的马课件部编版八上语文文学常识部编八上语文文学常识二年级语文一匹出色的马课件
、数学和英语三门课程的成绩~则可以用B,1~1,表示1号同学的语文成绩,B,1~2,表示1号同学的数学成绩,B,1~3,表示其英语成绩,以B,2~1,表示2号同学的语文成绩,B,2~2,表示2号同学的数学成绩,B,2~3,表示2号同学英语成绩,...,B,50~3,表示第50个同学的英语成绩。
A和B都是数组。即由一些数和变量构成的序列或一个方形表就构成一个数组。前者A称为一维数组~后者B称为二维数组。
数组也有数值型和字符串型等类型之分。在一个数组中通常只能放臵一种类型的数据~并且与数组的类型一致。
此外~数组还有静态数组和动态数组之分。
在使用数组前通常都要对数组进行维数、类型及大小等内容的定义或说明。
二、静态数组定义
静态数组是在定义数组时就指定了数组维数的多少及数组的大小。
1、语法
Dim
ReDim 数组名,[下限值To]上限值...[~[下限值To]上限值],[As类型] Static
Public
2、语法说明:
,1,Dim:定义窗体模块数组。ReDim:在过程中定义。Static:在过程中定义。
Public:在
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
模块中定义全局数组。
,2,数组名的命名规则和变量命名规则相同~但是数组名不能与一般变量同名。 ,3,凡是VB的数据类型~在数组中都可以说明和使用~当“As类型”省略时~
为变体型数组,Variant,。
,4,下限值和上限值的大小范围是从-32768至32767。下限值及关键字TO可以省
略~当省略时下限值为0。使用数组时~其下标不能超出所定义的范围。下标可以是负
数。
,5,维数可以多达60维。
,6,数组要先定义后使用。
,7,在一个过程内部~数组名不能与某个变量同名。
,8,用Dim语句定义数据组~数值型元素臵0~字符型元素臵空字符串。 ,9,可用类型说明符说明数组类型。
,10,若在定义时不指明下标~下标为0~这里可用Option Base 1定义下标为1。 例子:数组定义举例
定义的例子 数组维数 数组元素
Dim A(5) As Integer A(0), A(1),A(2), A(3), A(4), A(5) ‘整型 一维 Dim A(1 To 5) As String A(1),A(2), A(3), A(4), A(5) ‘字符型
B(0,0)~B(0,1)~B(0,2)~B(0,3) Dim B(2,3) As Single 二维 B(1,0)~B(1,1)~B(1,2)~B(1,3) ‘单精度实型 B(2,0)~B(2,1)~B(2,2)~B(2,3) Dim B(1 To 2,1 To 3) As Integer B(1,1)~B(1,2)~B(1,3) ‘整型 B(2,1)~B(2,2)~B(2,3)
C(0,0,0)~C(0,0,1)~C(0,0,2)
C(0,1,0)~C(0,1,1)~C(0,1,2)
C(0,2,0)~C(0,2,1)~C(0,2,2)
C(0,3,0)~C(0,3,1)~C(0,3,2)
C(1,0,0)~C(1,0,1)~C(1,0,2)
C(1,1,0)~C(1,1,1)~C(1,1,2) Dim C#(2,3,2) ‘双精度实型 三维 C(1,2,0)~C(1,2,1)~C(1,2,2)
C(1,3,0)~C(1,3,1)~C(1,3,2)
C(2,0,0)~C(2,0,1)~C(2,0,2)
C(2,1,0)~C(2,1,1)~C(2,1,2)
C(2,2,0)~C(2,2,1)~C(2,2,2)
C(2,3,0)~C(2,3,1)~C(2,3,2) 三、测试数组上、下标函数
1、测试数组下标函数:Lbound,数组[~维],
2、测试数组上标函数:Ubound,数组[~维],
例子:
Dim D,3, 5, 7,9, As String Private Sub Form_Click,,
Print LBound,D, 1,,
Print UBound,D, 1,
Print LBound,D, 2,,
Print UBound,D, 2,
Print LBound,D, 3,,
Print UBound,D, 3, Print LBound,D, 4,,
Print UBound,D, 4, End Sub
结果显示:
0 3
0 5
0 7
0 9
四、变体型,默认,数组 若定义数组时不指定类型~则该数组是一个变体型数组。其元素的类型可以不同。
即:Dim A,2,3,等同于:Dim A,2,3, As Variant
例子:
Dim A,5,
Private Sub Form_Click,,
A,1, = "中华人民共和国"
A,2, = 12345
A,3, = 3456789
A,4, = 987654321
A,5, = "ABCDE" + "abcde"
Print A,1,
Print A,2,
Print A,3,
Print A,4,
Print A,5,
End Sub
五、数组的操作
数组的操作包括对数组元素进行数值的输入、输出和复制。
1、数组元素的赋值
方法一:用赋值语句对数组元素逐个赋值。
例子:
Dim A(5)
Private Sub Form_Click()
A(1) = "中华人民共和国"
A(2) = 12345
A(3) = 3456789
A(4) = 987654321
A(5) = "ABCDE" + "abcde"
Print A(1)
Print A(2)
Print A(3)
Print A(4)
Print A(5)
End Sub
方法二:用赋值语句结合For循环语句。
Dim D(0 To 2, 1 To 3) As Integer Private Sub Form_Click()
For i = 0 To 2
For j = 1 To 3
D(i, j) = 100
Print D(i, j)
Next j
Next i
End Sub
方法三:用InputBox函数。 Dim array1(5) As Variant Private Sub Form_Click()
For i = 1 To 5
array1(i) = InputBox("输入元素的值:")
Next i
For i = 1 To 5
Print array1(i)
Next i
End Sub
方法四:对于 变体型一维数组~可应用Array()函数赋值。
格式:Array(值1~值2~值3… …) 例子:设一个一维变体型数组ABC~不指定维数~用Array()函数赋值~然后显示
元素值。
Option Base 1
Dim ABC
Private Sub Form_Click()
ABC = Array("One", "Two", "Three", "Four", 1, 2, 3, 4, 5, 6)
For i = 1 To 10
Print ABC(i)
Next i
End Sub
2、数组元素值的输出
用Print语句显示输出。前面有相应的例子。这里讨论如何进行“格式”输出。
例子:设有一个单精度实型三维数组array2(2,3,4)~其元素值:
11 12 13 14
15 16 17 18
19 20 21 22
31 32 33 34
35 36 37 38
39 40 41 42
源程序如下:
Option Base 1
Dim array2(2, 3, 4) As Single Private Sub Form_Click()
For i = 1 To 2
For j = 1 To 3
For k = 1 To 4
array2(i, j, k) = InputBox("输入元素的值:")
Next k
Next j
Next i
For i = 1 To 2
For j = 1 To 3
For k = 1 To 4
Print array2(i, j, k); "";
Next k
Print
Next j
Print
Next i
End Sub
3、For Each … Next语句 该语句是专门用于数组操作的语句。
,1,语句格式
For Each 成员 in 数组
循环体
[ Exit For]
… …
Next 成员
,2,说明
利用语句中的成员变量可实现数组元素的赋值、计算、显示等操作。
例子:设一个二维数组array5(3,4)~将其中的第一个元素赋值100~后面的元素依
次再加1赋值
Option Base 1
Dim array5(3, 4)
Private Sub Form_Click()
n = 100
For Each x In array5 ’x为成员
x = n
n = n + 1
Print x
Next x
End Sub
六、嵌套数组
在Visual Basic中~可以用一个数组作为另一个数组的元素。在使用时~可将一个
数组,嵌套数组,赋值给另一个数组,被嵌套数组,的元素~嵌套数组名后面加空括号。
要求:嵌套数组是数据类型~被嵌套数组不指定类型。
例子:将数组a,4,赋给数组b,2,~ Dim a,4, As Integer
Dim b,2,
Private Sub Form_Click,,
For i = 1 To 4
a,i, = i
Next i
b,1, = a,,
b,2, = a,,
Print b,1,,1,
Print b,1,,2,
Print b,1,,3,
Print b,1,,4,
Print
Print b,2,,1,
Print b,2,,2,
Print b,2,,3,
Print b,2,,4,
End Sub
讲授40分钟
5.2动态数组
在应用程序设计时~常常会遇到事先不知道所需多么大的数组~比如要开发一个能
通用的学籍管理系统中~要用到处理学生成绩的数据~需要数组~而这个系统要能适应
于班级及人数都可能不同的学校~在设计时就无法确定~若事先定义得小了~会使在某
些大的学校不能正常使用,若定义了很大的数组~对于不同的学校和班级~有可能常常
是占用内存资源~降低系统的效率。为解决此类问题~VB系统提供了动态数组的功能。 动态数组是指其数组的维数及大小可以重新定义~根据应用的环境不同随时说明其
维数及大小。“动态数组”是由变量作为下标的数组~其下标在程序运行时完成定义。 一、动态数组的定义
第一步:用Dim语句或Public语句定义一个只有空括号而无下标的数组。 第二步:用ReDim定义带下标的数组。语句的格式:
ReDim [Preserve] 变量,下标, As 类型
在定义时~类型与Dim语句中的类型要一致。下标通过变量赋值解决。 例子:
Dim A,, As Integer
Private Sub Form_Click,,
n = InputBox,"输入n的值:",
ReDim A,n,
For i = 1 To n
A,i, = 12345
Print A,i,
Next i
End Sub
可以动态地定义多个数组。例子:
Dim A,, As Integer, B,, As Integer
Private Sub Form_Click,,
n = InputBox,"输入n的值:",
m = InputBox,"输入m的值:",
ReDim A,n, m,
ReDim B,n, m,
For i = 1 To n
For j = 1 To m
A,i, j, = 12345
B,i, j, = 23456
Print A,i, j,, B,i, j,
Next j
Next i
End Sub
二、数组的清除和重定义
数组一经定义~在内存中会分配相应的存储单元~其大小是不能改变的。即:在一
个程序中~同一个数组只能定义一次。若清除数组内容或重新定义~要使用Erase语句。
格式:
Erase 数组名[~数组名]… …
例子:
Erase A,B,C
1、清除静态数组的影响
数组类型 对元素的影响 数值类型数组 将元素值臵0 字符类型数组,变长, 将元素值设为空字符串 字符类型数组,定长, 将元素值臵0 变体类型数组 将元素值设为Empty 用户定义类型数组 将元素设为单独的变量 对象数组 将元素值设为Nothing
例子:
Dim A,3, As Integer
Private Sub Command1_Click,,
For i = 1 To 3
A,i, = 12345
Print A,i,
Next i
End Sub
Private Sub Command2_Click,,
Erase A
For i = 1 To 3
Print A,i,
Next i
End Sub
2、清除动态数组的影响
,1,系统会删除数组结构~并释放内存空间。 ,2,下次引用动态数组前~要用ReDim语句重新进行定义。
三、数组应用算法--数据统计
利用数组进行数据统计运算
例:利用随机函数生成十个100以内的随机整数~计算出这十个数的总和及其平均
值~并输出这十个数、总和及其平均值。
问题分析:对象设臵把结果使用Print方法直接输出到窗体中~不用设臵专用对象。
程序代码:
DimA,10,AsInteger
Dim B As Single
Sub Form_Load,,
Form1.Show
Print " 十个整数为:"
For i=1 To 10 '循环产生10个随机整数 A,I,=Int,Rnd*100, '生成随机第i个整数 PrintA,I,, '显示第i个数 A,0,=A,0,+A,I, '累加求和 Next i
Print
B=A,0,/10 '求平均值
Print "总和为:",A,0,
Print "平均值为:",B
EndSub
本节课总结5分钟