VB程序设计中的数组(PPT)

上传人:tian****1990 文档编号:244673911 上传时间:2024-10-05 格式:PPT 页数:30 大小:241.49KB
返回 下载 相关 举报
VB程序设计中的数组(PPT)_第1页
第1页 / 共30页
VB程序设计中的数组(PPT)_第2页
第2页 / 共30页
VB程序设计中的数组(PPT)_第3页
第3页 / 共30页
点击查看更多>>
资源描述
*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第7章 数组,7.1 数组的概念,7.2 静态和动态数组,7.3,数组的基本操作,7.4,控件数组,7.5 数据应用举例,界面设计复习,7.1 数组的概念,1.问题引入,若要求一个班30个学生的平均成绩,然后统计高于平均分的人数。,按以前简单变量的使用和循环结构相结合,求平均成绩程序段如下:,aver=0,For i=1 To 100,mark=InputBox(输入+i+位学生的成绩),aver=aver+mark,Next i,aver=aver/100,7.1 数组的概念,但若要统计高于平均分的人数,则无法实现。mark是一个简单变量,存放的是最后一个学生的成绩。,已有知识解决方法:再重复输入成绩,带来两个问题:,(1)输入数据的工作量成倍增加;,(2)若本次输入的成绩与上次不同,则统计的结果不正确。,解决此问题的根本方法,引入数组,始终保持输入的数据,一次输入,多次使用。,(1)数组:是具有相同数据类型的变量的一个有序的集合。,例如,Dim A(1 To 100)As Integer表示一个包含100个数组元素、数组名为A、数据类型为整型的数组。,(2)数组元素:即数组中的变量,数组元素的表示方法为:,数组名(下标1,下标2),如,A(3,2)代表二维数组A中第3行第2列上的那个元素。,(3)数组维数:由数组元素中下标的个数决定。一个下标表示一维数组,两个下标表示二维数组。,(4)下标:下标表示顺序号,每个数组有一个唯一的顺序号,下标不能超过数组声明时的上、下界范围。下标可以是整型的常数、变量、表达式,甚至可以又是一个数组元素。,(5)数组的上界和下界:数组中第一个元素的下标称为下界,最后一个元素的下标称为上界。上界和下界决定了数组下标的取值范围,缺省时下界为0。若数组元素的下标取值超出下界或上界,系统将显示“下标越界”的出错信息。,(6)数组必须遵循“先声明(定义),后使用”的原则。声明一个数组实质上就是声明数组的名称、类型、维数及大小。,(7)在内存中,数组元素在上下界内必须是连续的。例如,,Dim Mark(1 To 100)As Integer,7.2 静态数组和动态数组,数组不是一种数据类型,而是一组相同类型的变量的集合,数组必须先声明后使用。两类数组:静态(定长)数组、动态(可变长)数组,1.静态数组的声明,Public|Private|Dim|Static,数组名(下标1,下标2)As 类型,维数:几个下标为几维数组,最多60维。,下标:下界 To 上界 省略下界为0 ,必须为常数。,每一维大小:上界下界+1,数组大小:每一维大小的乘积,例:,Dim mark(1 to 100)As Integer,Dim lArray(0 To 3,0 To 4)As Long,共有 47个元素,等价于:,Dim lArray(3,4)As Long,注意:,(1)下界缺省为0,也可在重新定义数组的下界。例如:,Option Base 1,(2)错误的声明,下标是变量,n=Inputbox(“输入n”):Dim x(,n,)As Single,(3)在数组声明中的下标说明了数组的整体,即每维的大小,而在程序其他地方出现的下标表示数组中的一个元素。两者写法形式相同,但意义不同。,例如:,Dim x(10)As Integer,声明了x数组有11个元素,x(10)=100,对x(10)这个数组元素赋值,(4)关键字Public、Dim、Static、Private表示数组变量的作用范围,具体内容将在过程与函数一章进行讲解。,(5)在数组定义后未赋值前,对于数值型数组各元素的初始值为0;字符型数组初始值为空字符串;逻辑型数组初始值为False。,例7-1,7.2 动态数组及声明,动态数组指在声明数组时未给出数组的大小(省略括号中的下标),当要使用它时,随时用ReDim语句重新指出数组大小。形式如下:,Dim|Private|Public 数组名()As 数据类型,ReDim Preserve 数组名(下标,下标2)As 类型,说明:,Dim,、,Private,、,Public,变量声明语句是说明性语句,可出现在过程内或通用声明段;,ReDim,语句是执行语句,只能出现在过程内。,在过程中可多次使用ReDim来改变数组的大小和维数。,使用ReDim语句会使原来数组中的值丢失,可以在ReDim语句后加Preserve参数来保留数组中的数据。使用Preserve只能改变最后一维的大小,前面几维大小不能改变。ReDim中的下标可以是常量,也可以是有了确定值的变量。,静态数组在程序编译时分配存储单元,动态数组在运行时分配存储单元。,需要清除数组内容或对数组进行重新定义,可以使用Erase语句实现,Erase 数组名,数组名,在Erase语句种只能出现数组名,不能带括号和下标。,例7-2,7.3 数组的基本操作,1.数组元素的赋初值,(1)用循环,For i =1 To 10,iA(i)=0,Next i,注意:,利用,Array,对数组各元素赋值,声明的数组是可调数组或连圆括号都可省,并且其类型只能是,Variant,。,数组的下阶为零,上界由,Array,函数括号内的参数个数可决定,也可通过函数,Ubound,获得。,(2)Array,函数,Dim ib As Variant,ib=Array(abc,def,67),For i=0 To UBound(ib),Picture1.Print ib(i);,Next i,7.3 数组的基本操作,数组元素的引用,A(1)=A(2)+B(1)+7 取数组元素运算,A(i)=B(i)下标使用变量,B(i+1)=A(i+2)下标使用表达式,C(3,4)=100 下标使用常量,7.3 数组的基本操作,数组元素的输入,1.用 InputBox 函数进行输入,2.用赋值语句输入,例7-3,7.3 数组的基本操作,数组元素的输出,可以输出到文本框、标签、窗体、图片框等控件上。,例7-3-1,7.3 数组的基本操作,数组元素的复制,数组元素之间可以互相复制,无论它们是否属于同一个数组或维数是否相同,但数组类型必须相同,例7-4,与数组有关的几个函数,1.Array函数,Array 函数使数组元素得到初值。其语法格式为:,数组变量名Array(数组元素值列表 ),说明:,(1)数组变量名:是在使用 Array 之前已定义过的数组名,但在定义该数组时像定义变量一样,既没有维数也没有上下界,并且数组类型必须是Variant类型。在“数组变量名”之后没有括号。,(2)数组元素值列表:给数组元素赋初值的数据列表,数据之间用“,”分隔。数据的个数决定了数组的大小。如果无此列表,则创建了一个0长度的数组。,与数组有关的几个函数,例如,要将1,2,3,4,7,6,7 这些值赋值给数组a,可使用下面的方法赋值。,Dim a(),A=array(1,2,3,4,7,6,7),Dim a,A=array(1,2,3,4,7,6,7),Ubound()与 Lbound()函数,Ubound()函数和Lbound()函数分别用来确定数组某一维的上界和下界值。,使用形式如下:,UBound(,),LBound(,),其中:,:必需的。数组变量的名称,遵循标准变量命名约定。,:可选的,一般是整型常量或变量。指定返回哪一维的上界。1 表示第一维,2 表示第二维,如此等等。如果省略默认是1。,与数组有关的几个函数,Dim A(-5 To 50,20,7 To 65)As Integer,UBound(N,3)=65,LBound(N)=-5,7.4 控件数组,控件数组的概念,控件数组由一组相同类型的控件组成,这些控件共用一个相同的控件名,具有相同的属性设置。每个控件都有一个唯一的索引号(即下标值),索引号由控件的Index属性设置,可以通过Index的值来区分控件数组中的某个元素。,7.4 控件数组,控件数组共享同样的事件过程,通过返回的下标值区分控件数组中的各个元素。,例:,Private Sub cmdName _Click(,Index,As Integer),If,Index,=3 then,处理第四个命令按钮的操作,End If,End Sub,建立控件数组,复制与粘贴来建立控件数组,7.5 数组应用举例,求数组中最大(最小)元素及所在下标,【例7.5】,随机产生20个10,100之间的整数,将其存入一个一维数组中,并将其输出到窗体上,然后找出最大值及其位置,排序(选择法),对已知存放在数组中的,n,个数,用选择法按递增顺序排序。,(1)从,n,个数的序列中选出最小的数(递增),与第1个数交换位置;,(2)除第1个数外,其余,n,-1个数再按(1)的方法选出次小的数,与第2个数交换位置;,(3)重复(1),n,-1遍,最后构成递增序列。,7.5 数组应用举例,动画示例,例7-6,排序(冒泡法),动画演示,排序思想:从第一个元素开始,对数组中两两相邻的元素进行比较,将值较小的元素放在前面,值较大的放在后面,一轮比较完毕,一个最大的数沉底成为数组中最后一个元素,一个较小的数如同气泡一样上浮一个位置,经过多轮比较后完成排序。,例7-7,矩阵的基本操作,矩阵是一个二维数组,由数组第一维决定矩阵的行、第二维决定矩阵的列,二维数组在内存的存放顺序是“先行后列”。,例如:Dim a(2,3)As Single,其存放顺序为:,a(0,0)a(0,1)a(0,2)a(0,3)a(1,0)a(1,1)a(1,2)a(1,3)a(2,0),a(2,1)a(2,2)a(2,3)。,问题分析:二维数组的转置是数组元素进行行列互换,即a(i,j)元素与a(j,i)元素互换。,例7-8,数组中常见错误和注意事项,1.,静态数组声明下标出现变量,n=InputBox(输入数组的上界),Dim a(1 To,n,)As Integer,2数组下标越界,引用的下标比数组声明时的下标范围大或小。,Dim a(1 To 30)As Long,i%,a(1)=1:a(2)=1,For i=,2,To 30,a(i)=a(i-2)+a(i-1),a(0)不存在,Next i,数组中常见错误和注意事项,3数组维数错,数组声明时的维数与引用数组元素时的维数不一致。,Dim a(3,7)As Long,a(,i,)=10,4Aarry函数使用问题,只能对Variant 的变量或动态数组赋值。,5获得数组的上界、下界,Ubound、Lbound函数,小结,数组概念,静态与动态数组,数组操作,数组应用,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!