Visual Basic程序设计 教学课件 ppt 作者 王怀彬 第05章

上传人:E**** 文档编号:89184151 上传时间:2019-05-20 格式:PPT 页数:121 大小:301KB
返回 下载 相关 举报
Visual Basic程序设计 教学课件 ppt 作者 王怀彬 第05章_第1页
第1页 / 共121页
Visual Basic程序设计 教学课件 ppt 作者 王怀彬 第05章_第2页
第2页 / 共121页
Visual Basic程序设计 教学课件 ppt 作者 王怀彬 第05章_第3页
第3页 / 共121页
Visual Basic程序设计 教学课件 ppt 作者 王怀彬 第05章_第4页
第4页 / 共121页
Visual Basic程序设计 教学课件 ppt 作者 王怀彬 第05章_第5页
第5页 / 共121页
点击查看更多>>
资源描述

《Visual Basic程序设计 教学课件 ppt 作者 王怀彬 第05章》由会员分享,可在线阅读,更多相关《Visual Basic程序设计 教学课件 ppt 作者 王怀彬 第05章(121页珍藏版)》请在金锄头文库上搜索。

1、第5章 数 组,5.1 数组概述,一组具有相同名字,不同下标的,用来表示一组具有相同性质的数据,称为数组。 数组并不是一种数据类型,而是一组相同类型的变量的集合,该集合的名字即数组名。数组名的命名规则与简单变量的命名规则相同。 数组中的每一个数据称一个数组元素,用数组名和该数据在数组中的序号来唯一标识,序号称下标(或索引)。因此,数组元素也称为下标变量(或索引变量)。,5.1 数组概述,例如,某班有50名学生,可以用一个数组E来表示50个学生的英语成绩,E(1)代表序号为1的学生的英语成绩,E(2)代表序号为2的学生的英语成绩,E(50)代表序号为50的学生的英语成绩。如: E(1)、E(2)

2、、E(3)、E(50) 其中E是数组名,括号内是数组元素的下标,而E(1)、E(2)、E(50)等是该数组的数组元素(下标变量)。,5.1 数组概述,使用数组可以方便灵活地组织和使用数据。数组元素在程序中的使用与简单变量类似,在简单变量允许出现的多数地方也允许出现数组元素。 例如,A=98是给简单变量A赋值,同样也可以通过E(2)=100给数组元素E(2)赋值。,5.1 数组概述,在表示数组元素时,应注意以下几点: (1)要用圆括号把下标括起来,不能用中括号或大括号代替,也不能省略圆括号。例如,数组元素E(9)表示成E9、E9或E9都是错误的。 (2)下标的最小取值称为下界,下标的最大取值称为

3、上界。在不加任何说明的情况下,数组下标的下界默认值为0。 (3)下标可以是常量、变量或表达式,其值必须是整数,否则将被自动四舍五入为整数;此外,下标值必须在所定义的上、下界范围之内,否则发生越界错误。,5.1 数组概述,一维数组: 对于一个数组,如果只用一个下标就能确定一个数组元素在数组中的位置,则称为一维数组,也就是说,由一个下标的数组元素所组成的数组称为一维数组。 如: E(1)、E(2)、E(3)、E(50),5.1 数组概述,二维数组或多维数组: 由具有两个或多个下标的数组元素所组成的数组称为二维数组或多维数组。 为了描述一个数组的大小(即指定各维的下标界限),就需要用语句定义。下面是

4、二维数组M(2,3)包含的数组元素: M(0,0) M(0,1) M(0,2) M(0,3) M(1,0) M(1,1) M(1,2) M(1,3) M(2,0) M(2,1) M(2,2) M(2,3),5.1 数组概述,根据数组占用存储空间的方式不同,VB中的数组分为两种: 固定大小的数组 动态数组,5.1 数组概述,固定大小的数组 在定义数组时已确定了数组的大小,称为固定大小的数组。 固定大小的数组对应的内存是在编译过程中分配的,即程序尚未运行,数组占用的内存大小即已确定,程序运行时其大小不能再改变。,5.1 数组概述,动态数组 在定义数组时未给出数组的大小,称为动态数组。 动态数组对应

5、的内存是在程序运行时分配的,并且运行时其大小可以根据需要随时调整。这两种数组的定义方法不同,使用方法也略有不同。,5.2 数组声明,数组必须先声明后使用。 本小节讨论一维数组的声明方式,包括一维固定大小数组和一维动态数组的声明方式,多维数组的声明方式见后面的小节。,5.2.1 固定大小的数组的定义,1格式 () As 2功能 声明一个一维数组,包括确定一维数组的名称、数组元素的个数和类型,并为一维数组分配存储空间。,5.2.1 固定大小的数组的定义,3说明 1)格式中的说明符为VB的保留字,不同的说明符可以定义数组的不同性质和作用范围,其定义形式为:Dim | Static | Private

6、 | Public,其中: Dim:可以用于模块、窗体和过程。 Static:只能用于过程和函数体内。经过过程和函数的调用,数族元素仍能保持原有值。 Private:可以用于模块和窗体,不能用在过程和函数体内。,5.2.1 固定大小的数组的定义,3说明 Public:仅能用于.bas模块,不能用于窗体、过程和函数体内。 数组的作用域如下: 用Public声明的数组作用域为整个程序。 用Private声明的数组作用域分模块级和窗体级。 用Dim声明的数组作用域分模块级、窗体级和过程级。 用Static声明的数组作用域为过程级,但数组元素经过过程后不再是初始化的值。,5.2.1 固定大小的数组的定

7、义,3说明 2)格式中的数组名与简单变量的命名规则相同。 3)格式中的界标定义形式为: To 下界和上界规定了一维数组元素下标的取值范围。省略下界时,VB默认其值为0,可以使用Option Base语句将默认下界修改为1,其格式为: Option Base 0|1,5.2.1 固定大小的数组的定义,3说明 注意,Option Base语句只能在模块级中使用,用来声明数组下标的缺省下界,它只影响位于包含该语句的模块中的数组的下界。使用时必须把它放在数组定义之前。 一维数组所含元素个数为: 上界-下界+1。,5.2.1 固定大小的数组的定义,3说明 4)格式中的数据类型可以是Integer、Lon

8、g、Single、Double、Boolean、String(可变长度字符串)、String*n(固定长度字符串)、Currency、Byte、Date、Object、Variant、用户定义类型或对象类型。与声明变量类似,一个As 只能定义一个数组的类型。,5.2.1 固定大小的数组的定义,3说明 5)数组必须先定义,后使用。声明数组后,VB自动对数组元素进行初始化,将数值型数组元素值置为0,将字符串型数组元素值置为零长度字符串,将可变类型数组元素值置为Empty。 6)在编译时计算机为固定大小的数组分配固定的存储空间,在运行期间大小不能改变。,5.2.1 固定大小的数组的定义,例如:Dim

9、 A(5) As Integer 声明了一个具有6个元素的一维整型数组,其下界默认为0,上界为5,包含的数组元素有:A(0)、A(1)、A(2)、A(3)、A(4)、A(5)。 例如:Dim B(-3 To 3) As Integer 声明了一个具有7个元素的一维整型数组,其下界为-3,上界为3,包含的数组元素有:B(-3)、B(-2)、B(-1)、B(0)、B(1)、B(2)、B(3)。,5.2.1 固定大小的数组的定义,对于固定大小的数组,由于在程序运行时其所占内存大小不能改变,因此在使用时,要按照所处理数据可能达到的最大个数为其声明数组空间,这样会浪费一定的内存空间。 程序中过度使用固定

10、大小的数组会对整个系统的性能造成影响。,5.2.2 动态数组的定义,1格式 定义动态数组需要分以下两步进行: 1)在模块级或过程级按以下格式定义一个没有界标的数组。 ( ) As 这里的说明符、数组名和数据类型的要求同固定大小的数组的定义相同。,5.2.2 动态数组的定义,1格式 定义动态数组需要分以下两步进行: 2)在过程级使用下面的ReDim语句分配数组的实际元素个数。 ReDim () As 这里的通常包含变量或表达式,但其中的变量或表达式应有明确的值。,5.2.2 动态数组的定义,2说明 1)在定义动态数组的两个步骤中,如果步骤1)已经定义了数组的类型,则不允许用步骤2)改变类型定义。

11、 2)ReDim语句只能出现在过程中,与Dim语句不同,ReDim语句是一个可执行语句。 3)可以用ReDim语句反复改变数组元素及维数的数目。 4)每次执行ReDim语句时,当前存储在数组中的值会全部丢失。VB重新对数组元素进行初始化,即将数值型数组元素值置为0,将字符串型数组元素值置为零长度字符串,将可变类型数组元素值置为Empty。,5.2.2 动态数组的定义,例如: Option Base 1 Dim Z() As Integer Private Sub Command1_Click() M = 10 ReDim Z(M) For I = 1 To M Z(I) = I Print Z

12、(I) Next I End Sub,Private Sub Command2_Click() L = 20 ReDim Z(L) For I = 1 To L Z(I) = I + 1 Print Z(I) Next I End Sub,5.3 数组操作,数组在声明之后就可以使用了,即可以对数组元素进行各种操作。 数组的常用操作有数组的初始化、数组元素的输入、输出、复制等。 在很多情况下,将数组元素的下标和循环语句结合使用,能解决大量的实际问题。,5.3.1 数组元素的引用,访问数组内存放的数据(即数组元素)的格式为: 数组名(下标) 数组元素可以参加其类型所允许的各种操作。 需要指出的是:

13、数组定义时用数组名表示数组的整体,具体操作时是针对每个数组元素进行的。,5.3.1 数组元素的引用,例如: Dim A(10) As Integer A(5)=A(1)+10 以上程序中定义了一个整型数组A,因为它是数值型数组,因此后面A(5)=A(1)+10赋值语句中进行的算术运算操作成立。,5.3.2 给数组元素赋初值,1利用Array函数 在VB中可以使用Array函数为数组元素赋值,即把一个数据集赋值给某个数组。 格式:Array(数组元素值) 功能:将数组元素值赋给数组各元素的值,各值之间用逗号分隔。 说明:数组变量名是预先定义的数组名(定义时没有指定维数和上下界,并且类型必须为变量

14、体类型Variant),在数组变量名之后没有括号。,5.3.2 给数组元素赋初值,1利用Array函数 例如: Dim Week(), Num Week = Array(“SUN“, “MON“, “TUE“, “WED“, “THU“, “FRI“, “SAT“) Num = Array(0, 1, 2, 3, 4, 5) Print Week(0) Print Num(0),输出结果为: SUN 0,5.3.2 给数组元素赋初值,1利用Array函数 注意: 1)Array函数只能对一维数组各元素赋值,定义数组时圆括号可以省略,其类型只能是Variant。 2)数组的下界为零,上界由Arr

15、ay函数括号内的参数个数决定,也可通过函数UBound获得。,5.3.2 给数组元素赋初值,2利用For循环语句 例如: Dim T(10) As Integer For I=0 To 10 T(I)=1 Next I 以上程序先定义数组T,然后通过For循环语句为数组中的每一个元素赋初值为1。,5.3.2 给数组元素赋初值,3利用赋值语句 如果数组较小时,可以用赋值语句来实现数组元素赋初值。 例如: Dim B(1 To 3) As Integer B(1)=1 B(2)=2 B(3)=3 以上程序先定义数组B,然后通过三个赋值语句为数组的三个元素赋初值。,5.3.3 数组的输入,数组的输入

16、可以用For循环语句及文本框控件输入,也可以通过InputBox函数输入。 例如: Dim N(1 To 3) As String For I = 1 To 3 N(I) = InputBox(“请输入名字“) Next I 以上程序定义数组N为字符串型数组,包含3个数组元素,然后在For循环语句中利用InputBox函数为数组中的每一个元素实现数据的输入。,5.3.3 数组的输入,对于数组元素的输入,既可以对整个数组输入数据,也可以对个别数组元素输入数据。 例如: Dim A(1 To 10) As Integer A(2) = Val(Text1.Text) A(5) = Val(Text2.Text) 以上程序定义数组A,并缺省将数组A的各元素初始化为0,然后通过文本框Text1和Text2为数组中的第2个元素和第5个元素输入数据。注意:由于数组A是数值类型,而文本框Text属性返回的是字符串类型的数据,故需用函数Val( )实现数据类型的转换。,5.3.4 数组的输出,数组

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号