中文Visual Basic 6.0基础教程 教学课件 ppt 作者 郭政 第5章 数组、自定义数据类型和过程

上传人:E**** 文档编号:89386783 上传时间:2019-05-24 格式:PPT 页数:185 大小:1.11MB
返回 下载 相关 举报
中文Visual Basic 6.0基础教程 教学课件 ppt 作者  郭政 第5章  数组、自定义数据类型和过程_第1页
第1页 / 共185页
中文Visual Basic 6.0基础教程 教学课件 ppt 作者  郭政 第5章  数组、自定义数据类型和过程_第2页
第2页 / 共185页
中文Visual Basic 6.0基础教程 教学课件 ppt 作者  郭政 第5章  数组、自定义数据类型和过程_第3页
第3页 / 共185页
中文Visual Basic 6.0基础教程 教学课件 ppt 作者  郭政 第5章  数组、自定义数据类型和过程_第4页
第4页 / 共185页
中文Visual Basic 6.0基础教程 教学课件 ppt 作者  郭政 第5章  数组、自定义数据类型和过程_第5页
第5页 / 共185页
点击查看更多>>
资源描述

《中文Visual Basic 6.0基础教程 教学课件 ppt 作者 郭政 第5章 数组、自定义数据类型和过程》由会员分享,可在线阅读,更多相关《中文Visual Basic 6.0基础教程 教学课件 ppt 作者 郭政 第5章 数组、自定义数据类型和过程(185页珍藏版)》请在金锄头文库上搜索。

1、第5章 数组、自定义数据类型和过程,5.1 【案例16】“选票统计”程序,5.1.1 数组和数组元素 1数组和数组元素 在实际应用中,经常需要处理一批相互有联系、有一定顺序、同一类型和具有相同性质的数据(例如:某单位若干职工的工资,各候选人的选票数等)。,通常把这样的数据或变量叫数组。数组是一组具有相同数据结构的元素组成的数据集合。构成数组的各个数据或变量叫数组元素。,数组用一个统一的名称来标识这些元素,这个名称就是数组名。数组名的命名规则与简单变量的命名规则一样。在数组中,对数组元素的区分用数组下标来实现,数组下标的个数称为数组的维数。,有了数组,就可以用同一个变量名来表示一系列的数据,并用

2、一个序号(下标)来表示同一数组中的不同数组元素。例如:数组N有11个数组元素,则可表示为:N(0),N(1),N(10),它由数组名称和括号内的下标组成的,而且下标可以是常量、变量和数值型表达式。因此,数组元素也叫下标变量,它由数组名称和括号内的下标组成的。,一般情况下,数组应具有相同的数据类型,但当数组元素的数据类型为变体型(Variant)类型时,各个数组元素可以是不同类型的数据。,数组中的数组元素是有排列顺序的。使用循环语句,使下标变量的下标不断变化,即可获取数组中的所有变量,采用这种方法,可以很方便地给下标变量赋值和使用下标变量的数据。例如:100个候选人进行选票统计,如果使用简单变量

3、,需要使用100个变量(F0,F1,F99)来分别表示各候选人。,如果使用数组,只需要一个有100个数组元素的数组F,它有100个下标变量F(0),F(1),F(99)。对100个候选人选票进行统计,如果使用简单变量,程序会很复杂;如果使用数组,则使用循环语句,可以很容易地给它们赋值和进行累加。,在Visual Basic中,根据数组占用内存的方式的不同,可以将数组分为常规数组和动态数组两种类型。常规数组是数组元素个数不可改变的数组,动态数组是数组元素个数可以改变的数组。,常规数组是大小固定的数组,即常规数组中包含的数组元素的个数是不变的,它总是保持同样的大小,占有的存储空间也保持不变。创建常

4、规数组也叫定义数组。数组的下标变量一定要在定义了数组后才可以使用。定义数组语句的格式及功能如下。,2创建常规数组,【格式】Dim数组名(维数定义)As 数据类型 【功能】创建常规数组,它的名称由“数组名”给出,维数由“维数定义”,数据类型由“数据类型”给出。数组名的命名与变量的命名方法一样。可同时定义多个不同维数的数组。 【说明】,(1)维数定义:下标变量中的下标个数称为数组的维数,当它被省略时是创建了一个无下标的空数组。维数定义的格式如下: 下界1 To上界1 ,下界2 To 上界2,其中,一组下界To上界 即定义了一维,有几项下界 To上界即定义了几维数组。下界和上界表示该维的最小和最大下

5、标值,通过关键字To连接起来代表下标的取值范围。下界和关键字To可以省略,省略后则等效于0 To上界,即下标的下界默认值为0。下界和上界可以使用数值常量或符号常量。,(2)数据类型:用来定义数组下标变量的数据类型,可以定义所有数据类型。当它省略后,则相当于定义了一个变体(Variant)数据类型。,(3)Dim语句本身不具备再定义功能,即不能直接使用Dim语句对已经定义了的数组进行再定义。Dim能够定义说明数组,分配数组存储空间。数组元素在未经赋值前,数值型数组元素值为零,字符型数组的元素值为空字符串。,例如:Dim Data(20) As Integer 语句定义了一个名称为Data的整型数

6、组,它有21个元素:Data(0),Data(1),Data(20);,Dim Number(5 To 20) As Double语句定义了一个名称为Number的双精度型数组,它有16个元素:Number(5),Number(6),Number(20); Dim M(2,3 To 5) As Integer 语句定义了一个名称为M的二维整型数组,它有33个元素:M(0,3)、M(0,4)、M(0,5)、M(1,3)、M(1,4)、M(1,5)、M(2,3)、M(2,4)、M(2,5)。,(4)可以在一个数组中包含其他已经定义过的数组,被包含的数组类型一般应与该数组类型一样,但如果是变体型数组

7、除外。 (5)使用Option Base n语句可以重新设定数组的下界,其中n为0或正整数,表示数组下界的数值。,(6)使用下标变量时,可以完全像使用简单变量那样进行赋值和读取,下标变量的下标可以是常量、变量和数值型表达式(长整型数据)。,对于动态数组,只有在程序的执行过程中才给数组开辟存储空间,在程序未运行时,动态数组不占用内存。当不需要动态数组时,还可以用Erase语句删除它,收回分配给它的存储空间;可以用Redim(或Dim)语句再次分配存储空间。动态数组是用变量作为下标定维的数组,在程序运行的过程中完成数组的定义,动态数组可以在任何时候改变大小。,3创建动态数组,【格式】ReDim P

8、reserve 数组名 (维数定义)As 数据类型 【功能】创建动态数组。 【说明】 (1)创建动态数组时,上界和下界可以是常量和变量(有确定值)。,(2)可使用ReDim语句多次改变数组的数组元素个数和维数,但不能改变它的数据类型。,(3)如果重新定义数组,则会删除它原有数组元素中的数据,并将数值型数组元素全部赋0,将字符型数组元素全部赋空串。如果要想在数组重定义后不删除原有数据,应在定义数组时增加Preserve关键字,但是使用Preserve关键字后,只能改变最后一维的上界,不可以改变数组的维数。例如:,ReDim N(30) As Double 定义了一个有31个数组元素的双精度型动态

9、数组N ReDim Preserve N(40) As Double 将动态数组N的上界改为40,(4)可以使用带空圆括号的Dim语句来定义动态数组。在定义动态数组后,可以在过程内使用ReDim语句来定义该数组的维数和元素。如果试图在Private、Public或者Dim语句中重新定义一个已定义了大小的数组时,就会发生错误。,(1)Array函数 【格式】Array(元素列表) 【功能】将元素列表中的数据赋给一个Variant型数组的数组元素。,4数组函数,【说明】元素列表由各种类型数据组成,这些数据用逗号分隔。如果元素列表中不包含任何元素,则该函数创建一个元素个数为0的空数组。没有被声明为数

10、组的Variant型变量也可以表示数组。除定长字符串和自定义型数据外,Variant型变量可表示任何类型的数组。例如:,Dim N1,N2 定义了两个Variant型变量N1和N2 N1=Array(“A“,“B“,“C“,“D“,“E“,“1“,“100“) 将一个数组赋给变量N1 N2=N1(6) 将数组N1的第7个元素(下标从0开始)的值赋给变量N2,(2)IsArray函数 【格式】IsArray(变量名) 【功能】判断一个变量是否为数组变量。函数值为Boolean型。,【说明】如果变量名是数组变量名,则该函数的值为True,否则为False。例如,执行了Dim N(8) As Lon

11、g : Dim M Integer语句,则IsArray(N)=True, IsArray(M)=False 。,(3)下界函数(LBound) 【格式】LBound(数组名,维数) 【功能】求数组指定维数的最小下标。函数值为Long型数据。,【说明】变量参数为数组变量名。维数是可选参数,可以是任何有效的数值表达式,表示求哪一维的下界。1表示第一维,2表示第二维,依此类推。如果省略该参数,则默认为1。 例如:执行了Dim N(5,5 To 5,5 To 8)语句,则LBound(N,1)=0,LBound(N,2)=-5,LBound(N,3)=5。,(4)上界函数(UBound) 【格式】U

12、Bound(数组名,维数) 【功能】求数组指定维数的最大下标。函数值为Long型数据。 例如:执行了Dim N(10,5 To 8)语句,则UBound(N,1)=10,UBound(N,2)=8。,通常,在数组中各个数组元素的数据类型应该是相同的,但在实际应用中,所处理的对象往往由一些互相联系的、不同类型的数据项组合而成。虽然可以把数组声明为Variant型,从而使各个数组元素存放不同类型的数据。,5.1.2 自定义数据类型,但是,这会降低应用程序的运行速度。为了既能够表示和处理不同类型的数据,又不至于降低应用程序的运行速度,可以将这些描述同一对象的各种类型数据声明为用户自定义数据类型。用户

13、自定义数据类型,又叫记录类型。,自定义类型也必须先定义,然后才可以使用。自定义数据类型通过Type语句来实现,语句的格式和功能如下。,1自定义数据类型的定义方法,【格式】Public|PrivateType 自定义型名称 数据项名1 As 类型名 数据项名n As 类型名 End Type 【功能】声明了自定义数据类型,它的名称由Type关键字右边的“自定义型名称”来确定。,【说明】 (1)关键字Private表示声明模块级自定义数据类型,Public表示声明全局级自定义数据类型,默认是Public。该语句必须置于模块的声明部分,而不能置于过程内部。,(2)自定义型名称和数据项名的命名规则与变

14、量名的命名规则完全相同。,(3)数据项是记录中所包含的一个数据的名称,它可以有下标,表示数组。类型名用来说明记录中数据项的数据类型,它是基本数据类型的类型说明关键字(如Inetger、Long等),或者是其他已定义的记录数据类型的名称。类型名是字符串时,必须是定长字符串。,(4)自定义型名称和该类型的变量名混淆,前者表示了如同Integer、Single等的类型名,后者则由Visual Basic根据变量的类型分配所需的内存空间,存储数据。,例如:声明一个关于学生信息的自定义类型(记录类型),该自定义类型中包括学生的学号、姓名、性别、年龄、总成绩和平均分等数据项。这个自定义型的名称为Stude

15、nt。,Private Type Student XH As String*2 XH(学号)数据项,2个字符长字符型 XM As String*4 XM(姓名)数据项,4个字符长字符型 XB As String*1 XB(性别)数据项,1个字符长字符型 ZCJ As Integer ZCJ(总成绩)数据项,整型 PJF As Single PJF(平均分)数据项,单精度型 End Type,(1)自定义数据类型变量的声明:一旦自定义数据类型(记录类型)定义好后,就可以像基本数据类型那样使用了。,2自定义数据类型的使用,可以在变量的声明中使用这种记录类型,但要注意声明语句所在的位置略有不同:不能

16、在窗体模块和类模块中声明全局型的记录类型变量,全局型的记录类型变量必须在标准模块中进行声明。例如,在某个过程中声明记录类型变量A的语句格式如下。,Dim XS As Student 其中,XS是变量名称,Student是记录类型名称。,(2)自定义数据类型变量的使用:一个变量一旦被声明为记录类型,就可以在程序中使用该变量及该变量中任一数据项中的数据了。要使用变量中的某个数据项,可采用如下格式。 变量名称.数据项名称 例如:表示学生的姓名可以使用XS.XM,表示学生的总成绩可以使用XS.ZCJ。,5.2.1 过程 1什么是过程和过程的分类,5.2 【案例17】“求组合数”程序,(1)什么是过程:在设计一个规模较大、功能较复杂的Visual Basic程序时,常常需要完成许多功能,这些功能相互之间是彼此独立的,因此可以按照功能将程序分解成若干相对独立的部件,可以用不同的程序段来实现不同的功能,Visual Basic称这些程序段为过程。对每个过程分别

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

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

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