数组与自定义数据类型.ppt
《数组与自定义数据类型.ppt》由会员分享,可在线阅读,更多相关《数组与自定义数据类型.ppt(42页珍藏版)》请在三一办公上搜索。
1、第5章 数组与自定义数据类型,前面章节中所用的数值型、字符型、布尔类型等数据类型称为VB的标准数据类型,通过一个变量存取一个数据,该类变量称为简单变量。例如求3名同学的平均身高时,就可定义同类型的变量a1、a2和a3表示3名同学的身高,但如果要求100名同学的平均身高,采用100个简单变量表示100名同学的身高,在数据存储与处理时就比较繁琐。又如,在描述一个人的基本情况时,可能会涉及到“姓名、性别、出生日期、电话号码、身高、婚姻状况”等数据,这些数据类型不同,但却相互关联,如果使用不同类型的简单变量,在数据存储和处理时也会带来诸多的不便。通常,简单变量用于解决一些数据量小且处理简单的问题,对于
2、那些描述具有某种关联的批量数据时,应采用VB提供的数组和用户自定义数据类型两种数据结构。,5.1 数组,1 数组的基本概念 数组是VB提供的一种数据结构。用统一的名称来代表具有相同性质的一组数,该名称为数组名。数组中的每一个元素称为数组元素。为了区分数组中的每一个元素,需要用一个索引号区别,该索引号称为下标。数组中的每一个元素可以用数组名和下标惟一表示。每个数组元素和一个普通变量一样能存放一个数据。,5.1 数组,1 数组的基本概念数组的特点:(1)数组由若干个数组元素组成。数组元素的表示方法为:数 组名后跟圆括号和下标,如a(3)就表示数组a的元素。(2)数组元素在内存中有次序存放,下标代表
3、它在数组中的位 置。如数组元素a(3)表示数组a中的第3个元素(若下标从 0开始则为第4个元素,下同),而数组元素b(3,4)则表示 数组b的第3行第4列的那个元素。(3)数组元素数据类型相同,在内存中存储是有规律的,占连 续的一段存储单元。例如一个整型数组a,有3个元素 a(1)、a(2)和a(3),那么a(1)、a(2)和a(3)的数据类型均 为整型,若已知a(1)在内存中的存储单元地址编号为 3001H,a(2)在内存中的存储单元地址必然为3003H(因 为一个整型数据占两个字节),a(3)在内存中的存储单元 地址为3005H。,5.1 数组,1 数组的基本概念在表示数组元素时,应注意以
4、下几点:(1)用圆括号把下标括起来,不能使用中括号或大括号代替,圆括号也不能省略。(2)下标可以是常量、变量或表达式,其值为整数,如常量、变量或表达式的值为小数时,将自动“四舍五入”。(3)下标的最小取值称为下界,下标的最大取值称为上界。在 不加任何说明的情况下,数组元素下标的下界默认为0。,5.1 数组,2 数组的声明 在VB中,使用数组前要先进行声明,以使VB在遇到某个标识符时,能将其当作数组来处理。“先声明后使用,下标不能越界”是数组使用的基本原则。在用Dim语句声明时就确定了大小的数组,称为静态数组,静态数组在程序编译时分配存储空间,一旦分配,数组的大小就不能再改变了。,5.1 数组,
5、2 数组的声明1)一维静态数组格式:Dim 数组名(下界 To 上界)As 作用:声明数组具有“上界下限”个数组元素,这些元素 按照下标由小到大的顺序连续存储在内存中。其中:数组名 命名要符合变量命名规则。下界 To 上界 称为维说明,确定数组元素下标的取值范围(下标下界最小为-32768,上界最大值为32767)。下界默认值为0。下界和上界只能取直接常量或直接常量表达式、符号常量或符号常量表达式,不能为变量或包含变量的表达式。As 指明数组元素的类型,默认为变体数据类型。,5.1 数组,2 数组的声明2)二维静态数组格式:Dim 数组名(下界1 To 上界1,下界2 To 上界2As 作用:
6、声明(上界1下限1)*(上界2下限2)个连续的单元。例如:Dim Larray(0 to 3,0 to 4)As Long或 Dim Larray(3,4)As Long 声明了长整型的二维数组Larray,第1维下标范围为03,第2维下标范围为04,数组元素个数为4*5个,每个元素占4个字节的存储空间,元素排列如表所示。,5.1 数组,2 数组的声明静态数组声明的注意事项:(1)用“Option Base 1”可设定数组元素下标下界值为1,以改变下界默认值为0。该语句必须放在窗体或模块的通用声明段中,否则会出现“无效内部过程”的错误。例如:Option Base 1 Dim x(4)声明数组
7、x下标下界为1,因此x具有x(1)、x(2)、x(3)、x(4)4个数组元素,数组元素为变体类型数据。,5.1 数组,2 数组的声明静态数组声明的注意事项:(2)静态数组在同一个过程只能声明一次,否则会出现“当前范围内声明重复”的提示信息。例如:Private Sub Form_Click()Dim x(5)As Integer Dim x(5)As Single End Sub在该过程中两次声明了静态数组x。,5.1 数组,2 数组的声明静态数组声明的注意事项:(3)声明数组和声明变量一样,数组也有作用范围。如建立公用数组,在标准模块的通用声明段用Public语句声明;建立模块级数组,在窗体
8、的声明段用Private或Dim语句声明;建立过程级数组,在过程中用Dim或Static声明。详细内容请看第8章变量的作用域。(4)声明数组后,各数组元素的初值与声明普通变量相同。,5.1 数组,2 数组的声明3)动态数组声明 动态数组是指在程序执行过程中,数组元素的个数可以改变的数组。和静态数组类似,也分为一维动态数组、二维动态数组和三维动态数组。动态数组在用Dim语句声明数组时不给出数组的大小,程序执行到ReDim语句时才确定大小。创建动态数组通常分两步:,5.1 数组,2 数组的声明3)动态数组声明 第1步,在标准模块、窗体的通用程序段或过程,声明一个省略维说明的数组,格式为:Dim 数
9、组名()As 第2步,根据应用需要,用ReDim重新确定数组元素的个数,格式为:ReDim Preserve 数组名(维说明)As,5.1 数组,2 数组的声明3)动态数组声明 说明:(1)维说明 通常包含变量或表达式,但其中的变量或表达式 应有明确的值。(2)关键字Preserve 如果省略,重定义前数组元素的值全部 丢失,VB系统重新对数组元素进行初始化;如果使用了 Preserve,重定义前数组元素的值不丢失,VB系统保留原 数组元素的值。在使用Redim语句时请注意:Redim语句只能改变数组的大小,不允许改变数组的数据类型。,5.1 数组,例5-2 输入某门课n个同学的成绩,输出高于
10、平均分的成绩。Dim aver!,i%,x!()这里先声明一个空数组 n=Val(InputBox(请输入统计人数,输入框,1)ReDim x(1 to n)根据实际人数声明数组大小 aver=0 For i=1 To n x(i)=InputBox(请输入第&i&个学生成绩,录入窗口,0)Print 第&i&个学生成绩为:&x(i)aver=aver+x(i)Next i aver=aver/n Print 平均分为:&aver Print=以下成绩高于平均分=For i=1 To n If x(i)aver Then Print 第&i&个学生成绩为:&x(i)End If Next i,
11、5.1 数组,3 数组的赋值1)静态数组元素赋值 对于静态数组,不能将数组名作为被赋值对象,而只能将数组元素作为赋值对象,利用数组元素是有序存储和静态数组元素个数在声明时已经确定的特点,采用循环结构,逐一为数组元素赋值。通常,采用循环次数固定的ForNext结构。一维数组可通过单循环实现,二维数组可通过双层循环实现。Dim a(1 to 10)as Single For i=1 to 10 a(i)=0 Next i,5.1 数组,3 数组的赋值1)静态数组元素赋值 对于静态数组,不能将数组名作为被赋值对象,而只能将数组元素作为赋值对象,利用数组元素是有序存储和静态数组元素个数在声明时已经确定
12、的特点,采用循环结构,逐一为数组元素赋值。通常,采用循环次数固定的ForNext结构。一维数组可通过单循环实现,二维数组可通过双层循环实现。Dim a(1 to 10)as Single For i=1 to 10 a(i)=0 Next i,5.1 数组,3 数组的赋值2)动态数组赋值 动态数组赋值时,既可以将数组元素做为被赋值的对象,也可以将数组名作为被赋值的对象。这是因为:尽管动态数组在执行声明(Dim语句)时,数组大小没有确定,但是当执行ReDim语句后,动态数组元素个数和下标的上下限也就确定了,即数组元素下标的下界可由LBound(数组名)函数得到(默认为0),下标上界可由UBoun
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 自定义 数据类型
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5361440.html