VB教学ppt课件第6章-数组【医药版】

上传人:风*** 文档编号:242756311 上传时间:2024-09-02 格式:PPT 页数:61 大小:1.11MB
返回 下载 相关 举报
VB教学ppt课件第6章-数组【医药版】_第1页
第1页 / 共61页
VB教学ppt课件第6章-数组【医药版】_第2页
第2页 / 共61页
VB教学ppt课件第6章-数组【医药版】_第3页
第3页 / 共61页
点击查看更多>>
资源描述
,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,大学计算机基础,沈阳药科大学,*,Click to edit Master title style,大学计算机基础,沈阳药科大学,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第六章 数组,高等医药院校药学类第三轮规划教材,大学计算机基础,第六章 数组高等医药院校药学类第三轮规划教材大学计算机基,第一节 数组的概念,目 录,第二节 数组的基本操作,第三节 动态数组,第四节 控件数组,第五节 常用算法,沈阳药科大学计算中心,沈阳药科大学计算中心,第一节 数组的概念 目 录第二节 数组的基本操作第三节,2,第,一,节,数组的概念,第一节 数组的概念,大学计算机基础,沈阳药科大学,第一节 数组的概念 第一节 数组的概念 大学计算机基础沈,3,第,一,节,数组的概念,为什么要使用数组?,引例:编写一个程序,读入,30,名学生的考试成绩,然后打印出比平均分高的学生的考试成绩。,方法一:,简单变量和循环结构相结合,。,虽然处理变得简单,,但无法输出比平均值高的成绩。,方法二:,使用多个变量。,虽然可以输出比平均值高的成绩,,但程序的编写很麻烦,处理很复杂。,(,1,)定义一次即可定义很多变量,(,2,)通过循环来处理这些变量,数组,因此处理,大批量的类型相同的数据,我们通常使用数组这样一种数据结构,.,大学计算机基础,沈阳药科大学,第一节 数组的概念为什么要使用数组?引例:编写一个程序,读入,4,第,一,节,数组的概念,6.1,数组的概念,说明:,(,1,)这些变量使用一片,连续,的存储单元。,(,2,)使用数组就是用一个相同的名字引用这一组变量中的,数据,这个名字称为,数组名,。,(,3,)数据类型,VS,数组:,数据类型指的是数据的取值范,围,而数组通常是表示相同数据类型的数据的集合,。,利用数组,可以方便灵活地处理批量的数据。,在,Visual Basic,中,把一组具有同一名字、,相同类型的变量,组成的,集合,称为数组。,例如:,dim mark(1 to 100) as single,mark,称为数组名,,1,跟,100,都是下标,这个数组具有,100,个元素。通过下标指出某个具体的数组元素,即指出它在数组中的位置。例如,,mark(6),代表,mark,数组中的第,6,个元素。,大学计算机基础,沈阳药科大学,第一节 数组的概念6.1数组的概念说明: 在Visua,5,第,一,节,数组的概念,6.1.1,数组命名与数组元素,例如:,dim mark(1 to 100) as single,数组名:,命名规则与简单变量一样。数组名不是代表一个变量,而是代表有内在联系的一组变量。,数组,元素:,数组内的每一个成员称为数组元素,。数组元素的类型也就是数组的类型。,数组元素的一般形式如下,数组名,(,下标,1,,下标,2,,,),例如:,mark,(,20,),下标:,每个数组元素都有各自的编号即下标,下标确定了数组元素在数组中的位置。,维数:,下标数就是数组的维数。,一个下标表示一维数组,两个下标表示二维数组,,二维以上的数组称为多维数组。,数组的维数不得超过,60,。,上界和下界:,数组中第一个元素的下标称为下界,最后一个元素的下标成为上界。缺省时下界为,0,,若下标的取值超出上界或下界,将出现“下标越界”的出错信息。,大学计算机基础,沈阳药科大学,第一节 数组的概念6.1.1数组命名与数组元素例如:dim,6,第,一,节,数组的概念,6.1.2,数组定义,注意:,数组与简单变量不同,,必须先定义(声明),后使用,。(目的是告知计算机它将占用多少内存单元。),使用数组分两个阶段:,声明(定义)数组和使用数组元素,。,提供了数组的四个信息,名字、,类型、,维数,(由下标的个数确定,下标由“逗号”分隔)、,大小,(各维大小的乘积),此时才真正,把数组当成是许多的变量(数组元素)的集合来使用,,使用这些变量(数组元素)解决相关问题。,数组的声明,数组元素的使用,大学计算机基础,沈阳药科大学,第一节 数组的概念6.1.2数组定义注意:数组与简单变量不同,7,(,1,)静态数组的声明与使用,形式,1:,Dim,数组名,(,下标,1,下标,2) As,类型,下标,: ,下界,To ,上界,省略下界为,0,上下界必须为常数或常量,,绝对不允许出现变量。,维数:几个下标为几维数组,最多,60,维。,每一维大小,:,上界下界,+1,数组大小,:,每一维大小的乘积,声明了数组的名、维数、大小、类型 ,同时还将,数组初始化,。,静态数组:声明的时候即确定数组中元素的个数(数组中元素的个数是固定不变的)。,另外一种声明形式,:,Dim,数组名,类型符号,(,下标,1,下标,2),例:,Dim mark!(1 to 100),例:,Dim mark(1 to 100) As single,例子,第,一,节,数组的概念,大学计算机基础,沈阳药科大学,(1)静态数组的声明与使用形式1: Dim 数组名(下标,8,第,一,节,数组的概念,例:,Dim A(6) As Integer,Private Name(1999 To 2002) As String *8,Dim B(2,,,1 to 2) As Integer,Dim M As Integer,Const N=5 As Integer,Dim A(N) As Integer,Dim B(1To 6.6) As Integer,Dim C(1 To 2 * 3) As Integer,M=5,Dim D(0 To M) As Integer,Dim Score(4),,,B(3,,,3) As Integer,Dim A(6) As Integer,Dim B(3,,,-1 To 4) As Single,返回,大学计算机基础,沈阳药科大学,第一节 数组的概念例: Dim M As Integer返回,9,(,1,)静态数组的声明与使用,数组元素的使用:,例如:,Dim mark(1 to 10) As Integer,mark(2) =100,注意:下标只能在下界与上界之间,如:,mark(11),会出现下标越界的错误,例如:定义单精度类型、,5,个元素的数组,Dim m(1 to 5) as single,或者,Dim,m!,(1 to 5),第,一,节,数组的概念,大学计算机基础,沈阳药科大学,(1)静态数组的声明与使用数组元素的使用:例如:Dim ma,10,例:,Dim seat( 1 To 3, 1 To 4) As .,。,(声明数组时一个下标的为一维数组,两个下标的为二维数组),二维、三维数组,seat,(,1,,,1,),seat,(,1,,,2,),seat,(,1,,,3,),seat,(,1,,,4,),seat,(,2,,,1,),seat,(,2,,,2,),seat,(,2,,,3,),seat,(,2,,,4,),seat,(,3,,,1,),seat,(,3,,,2,),seat,(,3,,,3,),seat,(,3,,,4,),例:,Dim seat( 1 To 2,1 to 3, 1 To 4) As .,。,该三维数组共有,23,4,个元素,该二维数组共有,34,个元素,6.1.3,数组的结构,一维数组的结构,一维数组可以理解为线性存储数据,开辟连续的存储单元来依次存放数组的各个元素。,第,一,节,数组的概念,大学计算机基础,沈阳药科大学,例:Dim seat( 1 To 3, 1 To 4,11,总结:,看一个数组中有多少个元素,要注意,首先看一下程序的开头是否有,Option base,语句,(,1,)无或者,Option base 0,下标从,0,开始,(,2,),Option base 1,下标从,1,开始,Option base,语句的使用,书写简便而又不浪费内存空间,Dim seat( 1 To 3, 1 To 4) As,。,Dim seat(3, 4) As,。,练习,Option base 1,Private Sub Command1_Click(),Dim,seat(3, 4),as,。,Dim mark(10) as single,End Sub,第,一,节,数组的概念,大学计算机基础,沈阳药科大学,总结:看一个数组中有多少个元素,要注意Option base,12,静态数组的声明与使用,注意:,(1),下界缺省为,0,,也可重新定义默认的数组的下界。,例如:,Option Base 1,(2),错误的声明,下标是变量 。,如:,n =Inputbox(“,输入,n”,):,Dim,x,(,n,),As Single,(3),在数组声明中的下标说明了数组的整体,即每维的大小;,而在程序其他地方出现的下标表示数组中的一个元素。,例如:,Option Base 1,Dim seat(2,3) As Integer,声明了,seat,为二维数组,第一维的,大小为,2,,第二维的大小为,3,seat(1,2)=100,对,seat,(,1,2,),这个数组元素赋值,(4),在使用数组元素的时候,下标只能在下界与上界之间。,大学计算机基础,沈阳药科大学,静态数组的声明与使用注意:大学计算机基础沈阳药科大学,13,建立一个数组之后,可以对数组或数组元素进行操作。数组的基本操作包括输入、计算出来及输出,,这些操作都是对数组元素进行的。,此外,,Visual Basic,中,数组经常与,For Next,结合使用,。,数组元素赋值,数组元素操作,数组元素输出,第二节 数组的基本操作,第,二,节,数组的基本操作,输入数据,计算处理,数据输出,计算处理,数据输出,计算处理,数据输出,输入数据,计算处理,数据输出,输入数据,计算处理,大学计算机基础,沈阳药科大学,建立一个数组之后,可以对数组或数组元素进行操,14,第,二,节,数组的基本操作,6.2.1,数组元素的赋值,1.,用赋值语句给数组元素赋值。,(直接赋一个数据或者文本框中的内容),这种方法适合于数据量小的情况下使用。,例:,Dim Score(3) As Integer,Dim Two(1, 1 to 2) As Integer,Score(0)=80,Score(1)=75,Score(2)=91,Score(3)=68,Two (0,,,1)= Score(0),大学计算机基础,沈阳药科大学,第二节 数组的基本操作6.2.1数组元素的赋值1.用赋值语句,15,第,二,节,数组的基本操作,6.2.1,数组元素的赋值,2.,通过循环逐一给数组元素赋值,(在循环当中直接将计算的数据或者产生的随机数赋值),这种方法适合于数据量大的情况下使用。,Dim A(6) As Integer,,,i As Integer,Dim B(1 to 2,,,1 to 2) As Integer,,,j As Integer,For i=0 To 6 ,使用循环给一维数组赋值并输出,A(i)=Int(99*Rnd)+1,Print A(i),;,Next I,For i=1 To 2,,利用二重循环给二维数组赋值并输出,For j=1 To 2,B(i,,,j)=i*10+j,Print B(i,,,j),;,Next j,Print,Next i,大学计算机基础,沈阳药科大学,第二节 数组的基本操作6.2.1数组元素的赋值2.通过循环逐,16,第,二,节,数组的基本操作,例:,Private Sub Form_Click(),Dim A(6) As Integer,,,i As Integer,For i=0 To 6,A(i)=InputBox(“,给数组元素赋值”,“,数组,A,赋值”,),Print A(i),;,Next I,End Sub,6.2.1,数组元素的赋值,3.,通过循环逐一给数组元素赋值,(在循环当中,lnputBox,函数,由键盘输入给数组元素赋值),这种方法数据量大的情况下不适用。,大学计算机基础,沈阳药科大学,第二节 数组的基本操作例:6.2.1数组元素的赋值3.通过循,17,第,二,节,数组的基本操作,6.2.1,数组元素的赋值,4.,用,Array,函数给数组赋值,利用,Array,函数可以把一个数据集赋值给一个,Variant,变量,再将该,Variant,变量创建成,个一维数组。,使用形式:,=Array(,数据列表,),注意,:,Array,函数的括号内值与值之间用,逗号分隔,;,接收完值后的变体型变量可以像数组一样,利用下标来引用每一个值;,Array,函数产生给变量型变量的数组下界由,Option Base n,决定,默认是,0,;,Array,函数将产生一个数组,;,不可以用,Array,函数给非,Variant,类型的变量赋值。,大学计算机基础,沈阳药科大学,第二节 数组的基本操作6.2.1数组元素的赋值4.用Arra,18,第,二,节,数组的基本操作,6.2.1,数组元素的赋值,4.,用,Array,函数给数组赋值,例:,Option Base 1,Private Sub Form_Click(),Dim A As Variant,Dim B(4) As Variant,A=Array(5,,,4,,,3,,,2,,,1),Print A(1),;,A(2),;,A(3),;,A(4),;,A(5),A=Array(1.51,,,2.31,,,3.61,,,4.11),Print A(1),;,A(2),;,A(3),;,A(4),A=”NO Array”,Print A,B=Array(1,,,2,,,3,,,4,,,5,,,6) ,该语句是一条错误语句,End Sub,大学计算机基础,沈阳药科大学,第二节 数组的基本操作6.2.1数组元素的赋值4.用Arra,19,第,二,节,数组的基本操作,6.2.1,数组元素的赋值,5.,读取顺序文件中的数据给数组赋值,例:,Private Sub Form_Click(),Dim i as integer,Dim a(1 to 30) as integer,Open app.path & “” & “in.dat” for,input,as #1,Do while not eof(1),i=i+1,Input #1,a(i),Loop,Close #1,End Sub,大学计算机基础,沈阳药科大学,第二节 数组的基本操作6.2.1数组元素的赋值5.读取顺序文,20,Dim b As Variant,变体类型的变量或字符型动态数组,b = Split(“20, 5, 68”, “,”),分隔后每个元素都是字符若要变成数字可用,val,函数,For i =,0,To,2,Print b(i),Next,i,无论有没有,Option Base 1,语句,下界都从,0,开始,join,函数,Dim b As Variant,变体类型的变量或字符型数组,b = Split(20, 5, 68, ,),c=join(b,:,),Print c,将数组,b,的各个元素用指定字符连接为一个字符串,6.2.1,数组元素的赋值,6. Split,函数给数组赋值,大学计算机基础,沈阳药科大学,Dim b As Variant,21,第,二,节,数组的基本操作,6.2.2,数组元素的引用,数组元素,的使用,和普通变量一样,,但是最应该注意的是下标是否合法,即不要发生下标越界的错误。,例,6-1,:产生,10,个(,1,,,50,)之间的随机整数,并将其中的最大数和最小数打印出来,同时将其存放在顺序文件”,out.dat”,中。运行结果:,大学计算机基础,沈阳药科大学,第二节 数组的基本操作6.2.2数组元素的引用数组元素的使用,22,第,二,节,数组的基本操作,例,6-2,:,生成一个如下形式的矩阵(见图),并按矩阵元素的排列次序将矩阵输出到图片框或文本框(同时输出也可)。,运行,结果:,大学计算机基础,沈阳药科大学,第二节 数组的基本操作例6-2:大学计算机基础沈阳药科大,23,第,二,节,数组的基本操作,6.2.3,数组函数及数组语句,1,LBound,函数,功能:返回数组某维的维下界的值。,调用形式:,LBound(,数组名,,,d),参数,d,为维数,若缺省则函数返回数组第一维的维下界的值或一维数组的下界。,例:,Private Sub Form_Click(),Dim A(4) As Integer,,,B(3 to 6,,,10 to 20),Print LBound(A),,,LBound(B,,,1),,,LBound(B,,,2),End Sub,程序执行结果是:,0 3 10,大学计算机基础,沈阳药科大学,第二节 数组的基本操作6.2.3数组函数及数组语句1LBo,24,第,二,节,数组的基本操作,2,UBound,函数,功能:返回数组某维的维上界的值,调用形式:,UBound(,数组名,,,d),例:,Private Sub Form_Click(),Dim A(4) As Integer,,,B(3 to 6,,,10 to 20),Print UBound(A),,,UBound(B,,,1),,,UBound(B,,,2),End Sub,程序执行结果是:,4 6 20,大学计算机基础,沈阳药科大学,第二节 数组的基本操作2UBound函数例:大学计算机基础,25,第,二,节,数组的基本操作,3,For Each-Next,结构语句,功能:用来依次访问数组中的每一个元素。,调用形式:,For Each Element In ,语句集,Next Element,说明:,Element,是在,For Each-Next,结构内重复使用的,Variant,变量,实际上代表数组中每一个元素。,是要处理的数组名。,循环次数则由数组中的元素的个数确定。,循环体内可以包含,Exit For,语句,用以退出循环。,大学计算机基础,沈阳药科大学,第二节 数组的基本操作3For Each-Next结构语句,26,第,二,节,数组的基本操作,例,6-3,找出,10,个能被,9,整除的两位数,分两行输出,使用,For Each-Next,结构。,运行结果:,例,6-4,把下面的二维数组,用,For Each-Next,结构输出。观察输出结果。运行结果:,程序验证:二维数组在内存中存储时,按列优先存储,大学计算机基础,沈阳药科大学,第二节 数组的基本操作例6-3 找出10个能被9整除的两位数,27,第,二,节,数组的基本操作,提示:文本框中的内容可以在设计状态时,在文本框的,Text,属性中输入,可以避免程序调试时重复的文字输入。,6.2.4,数组应用,例,6-5,统计字母,(,不分大小写,),在文本中出现的次数。运行结果:,大学计算机基础,沈阳药科大学,第二节 数组的基本操作提示:文本框中的内容可以在设计状态时,,28,第,二,节,数组的基本操作,例,6-6,20,个小朋友按照编号顺序围成一圈,,1,3,循环报数,凡报到,3,者出圈,直到全部出圈为止。编写程序记录出圈小朋友的出圈顺序。,运行结果:,经典:猴子选大王,一共有,n,只猴子围成一圈,开始数数,数到,m,时退出圈,剩下的重新开始数,直到最后一只猴子为大王。,大学计算机基础,沈阳药科大学,第二节 数组的基本操作例6-6 20个小朋友按照编号顺序围,29,第,三,节,动态数组,第三节 动态数组,大学计算机基础,沈阳药科大学,第三节 动态数组 第三节 动态数组 大学计算机基础沈阳药,30,例:,求一个班级中学生数学成绩的平均值并输出大于平均分的成绩,.,Dim mark(1 to 32) as single,Open app.path & “” & “math.dat” for,input,as #1,Do while not eof(1),i=i+1,Input #1,a(i),Loop,Close #1,sum=0,For i=1 to 32,sum=sum+mark(i),Next I,avg = sum/32,For i=1 to 32,if mark(i)avg then,print mark(i),Next i,赋值,求平均值,输出大于平均分的成绩,Dim mark!(1 to 32),静态数组的缺陷,当实际元素个数少,浪费空间,当实际元素个数多,不够用,程序出错,元素个数可动态变化的数组,动态数组,大学计算机基础,沈阳药科大学,例:求一个班级中学生数学成绩的平均值并输出大于平均分的成绩.,31,在声明数组时未给出数组的大小,(,省略括号中的下标,),,当要使用它时,随时用,ReDim,语句重新指出数组的维数以及大小,(,以方便为数组元素分配存储空间,),。,形式如下:,ReDim,数组名,(,下标,,下标,2) As,类型,动态数组:声明的时候没有指出数组中元素的个数(数组中元素的个数是动态变化的)。,例 :,Sub Form_Load( ),Dim x( ) As Single,例,求若干个学生的平均分。,n =Inputbox(“,输入,n”,),ReDim x(n),End Sub,练习,6.3,动态数组,大学计算机基础,沈阳药科大学,在声明数组时未给出数组的大小(省略括号中的下标,32,第,三,节,动态数组,说明:,(,1,)静态数组(元素个数固定)在程序编译(声明)时分配存储单元,动态数组(元素个数不固定)只有在运行(,Redim,语句)时分配存储单元。,(,2),当数组中元素个数可以确定的时候,则使用,ReDim,语句来重新定义这个数组;,在过程中可,多次使用,ReDim,来改变数组的大小和维数,,,但一般不改变动态数组的数据类型。,ReDim,中的下标可以是常量,也可以是有了确定值的变量。,(3),每次,ReDim,将会使原动态数组中的内容清零或清空,。,可以,在,ReDim,语句后加,Preserve,参数来保留数组中的数据,。,使用,Preserve,只能改变最后一维的大小,前面几维大小和维数不能改变,,不用,Preserve,时前面几维大小和维数可以改变。,(,4,),Dim,、,Private,、,Public,变量声明语句是说明性语句,可出现在过程内或通用声明段;,ReDim,语句是执行语句,只能出现在过程内。,大学计算机基础,沈阳药科大学,第三节 动态数组说明:大学计算机基础沈阳药科大学,33,第,三,节,动态数组,例:求一个班级中学生数学成绩的平均值并输出大于平均分的成绩,.,改进使程序对于任意一个班级都适用。,例,6-7,对数组重新定义时保留动态数组的内容。运行结果:,大学计算机基础,沈阳药科大学,第三节 动态数组例:求一个班级中学生数学成绩的平均值并输出大,34,第,三,节,动态数组,6.3.2Erase,语句,功能:对于静态数组使用,Erase,语句将重新初始化数组元素,对于动态数组使用,Erase,语句将释放动态数组的存储空间。,调用形式:,Erase a1,,,a2,,,语句中的,a1,、,a2,为需要重新初始化的数组名,例子,注意:下标越界是初学者使用数组时经常遇到的错误。要仔细检查数组的说明语句和对数组元素进行赋值操作语句中的下标值,若下标值超过了数组说明语句中的上、下界就会产生下标越界错误。,大学计算机基础,沈阳药科大学,第三节 动态数组6.3.2Erase语句功能:对于静态数组使,35,第,三,节,动态数组,运行结果,:,提示:,凡是只能被,1,和本身整除的数称为素数。除,2,以外的素数都是奇数,所以只需对,100,以内的每一个奇数进行判断即可。,由于编写程序时不能确定,100,以内有多少个素数,所以在定义数组时用动态数组,这样可以减少存储空间的浪费。,6.3.3,动态数组应用,例,6-8,:,找出,100,以内的所有素数,,存放在数组,Prime,中,,并将所找到的素数,按每行,5,个的形式显示在窗体上。,大学计算机基础,沈阳药科大学,第三节 动态数组运行结果:提示:6.3.3动态数组应用 大学,36,标志变量的使用在编程中经常用到,例如下面题目:,随机产生,30,个不重复的两位数,存入数组中并分,5,行显示出来,Option Base 1,Dim a%(30),Temp%,n%,i%,Flag As Boolean,a(1) = Int(Rnd*90 + 10) ,第一个是不可能重复的,n = 2,Do While,n=30,Temp = Int(Rnd*90 + 10),Flag = False,假设没重复,For i = 1 To n-1,If Temp = a(i) Then,Flag = True : Exit For,退出内层循环,没必要,End If,Next i,If Not Flag Then a(n) = Temp:n = n+1,Loop,实验,6.6 P,98,大学计算机基础,沈阳药科大学,标志变量的使用在编程中经常用到,例如下面题目:Option,37,(1),插入,查找要插入的位置,k,(,1=k=n-1,),腾出位置,把最后一个元素开始到第,K,个元素往后移动一个位置第,k,个元素的位置腾出,就可将数据插入,(2),删除,要找到欲删除的元素的位置,k,;然后从,k+1,到,n,个位置开始向前移动;最后将数组元素减,1,。,注意,:,redim preserve,的应用,数组元素的插入与删除,大学计算机基础,沈阳药科大学,(1) 插入 (2) 删除 注意:redim preser,38,第,三,节,动态数组,对有序数列的插入、删除元素。,思想:首先找到要插入(删除)的数据在数组当中的位置,然,后做插入(删除)操作。,插入:,删除:,例子:,大学计算机基础,沈阳药科大学,第三节 动态数组对有序数列的插入、删除元素。思想:首先找到要,39,第,三,节,动态数组,注意:,思想:依次取出数组的一个个元素与其后续的所有元素比较(通过双重的,Do,循环实现)。删除数组中的元素通过将其后续的元素依次前移即可实现重复的数据。,思考:能否用,For,循环替代,Do,循环,?,为什么,?,例,6-9,编写程序,删除一个数列中的重复数。,运行结果:,大学计算机基础,沈阳药科大学,第三节 动态数组注意:例6-9 编写程序,删除一个数列中的,40,第,四,节,控件,数组,第四节 控件数组,大学计算机基础,沈阳药科大学,第四节 控件数组 第四节 控件数组 大学计算机基础沈阳药,41,第,四,节,控件,数组,6.4,控件数组,6.4.1,基本概念,引入,控件数组是由一组具有,共同名称,和,相同类型,的,控件,组成,数组中的每一个控件,共享同样的事件过程,。,控件数组的名字由控件的,Name,属性指定,而数组中的每个元素的下标则由控件的,Index,属性指定,控件数组的第一个元素的下标是,0,,控件数组可用到的最大索引值为,32767,。,同一控件数组中的元素可以有相同的属性设置值,也可以有自己的属性设置值。,引用形式:,控件数组名,(,下标,),例:,Optionl(0),表示控件数组,Optionl,的第,0,个元素。,大学计算机基础,沈阳药科大学,第四节 控件数组6.4控件数组引入 控件数组是由一组具,42,第,四,节,控件,数组,6.4.2,建立控件数组,控件数组的建立有三种方法:,1,)创建同名控件,2,)复制现存控件,3,)运用代码产生控件数组,通过,Load,方法添加其余的若干个元素,也可以通过,Unload,方法删除某个添加的元素。,调用形式:,Load,控件数组名,(),Unload,控件数组名,(),大学计算机基础,沈阳药科大学,第四节 控件数组6.4.2 建立控件数组大学计算机基础沈,43,第,四,节,控件,数组,例,6-10,在程序运行时,通过,Load,语句创建名为,Tl,的控件数组。运行结果:,大学计算机基础,沈阳药科大学,第四节 控件数组例6-10 在程序运行时,通过Load语句创,44,第,三,节,动态数组,数组 常用的算法,大学计算机基础,沈阳药科大学,第三节 动态数组 数组 常用的算法大学计算机基础沈阳药,45,1.,分类统计,Select Case a(i),Case Is 60,b(5) = b(5) + 1,Case Is 70,b(6) = b(6) + 1, ,Case Is = 100,b(9) = b(9) + 1,End Select,例,:随机产生,20,个学生的成绩,统计,5059,、,6069,、,7079,、,8089,、,90100,各分数段的人数。,方法一,j = a(i) 10,If j = 10 Then j = 9,b(j) = b(j) + 1,For i = 5 to 8 ,输出各分数段人数,Print i*10;“”;i*10+9;“,的人数,: ”;b(i),Next i,Print “90100,的人数,:”;b(9),方法二,大学计算机基础,沈阳药科大学,1.分类统计 Select Case a(i)例,46,第,二,节,数组的基本操作,提示:文本框中的内容可以在设计状态时,在文本框的,Text,属性中输入,可以避免程序调试时重复的文字输入。,6.2.4,数组应用,例,6-5,统计字母,(,不分大小写,),在文本中出现的次数。运行结果:,大学计算机基础,沈阳药科大学,第二节 数组的基本操作提示:文本框中的内容可以在设计状态时,,47,2.,求极值(最大、最小),例:求一批数中的最大值。,方法一:,max=,最小值,,min=,最大值,方法二:,max=,第一个元素的值,,min=,第一个元素的值,改进:,max,、,min,保存最大、最小元素的下标,这时只能求出最大、最小值,但若是问那个同学成绩最高、最低,很显然不知道,因此在求最大、最小值时最好记录下标。,程序,大学计算机基础,沈阳药科大学,2. 求极值(最大、最小) 例:求一批数中的最大,48,3.,数组元素逆序,For i =1 To n2,t=num(i),num (i)=num (n-i+1),num (n-i+1)=t,Next i,大学计算机基础,沈阳药科大学,3. 数组元素逆序 For i =1 To n2大学计,49,数组的输出往往体现在对数组中已存数据的打印输出效果,主要是二维数组,如各种矩阵的输出样式,也是考试的热点。,矩阵,For i = 0 To 4 5,次,For j = 0 to 4 5,次,sc(i,j) = i*5 + j,Print sc(i,j);,Next j,Print,换行,Next i,已知数组,sc(0 To 4,0 To 4),4.,输出矩阵,大学计算机基础,沈阳药科大学,数组的输出往往体现在对数组中已存数据的打印输出效果,50,左下三角矩阵,For i = 0 To 4, 5,次,For j = 0 to i, i+1,次,sc(i,j) = i*5 + j,Print sc(i,j);,Next j,Print ,换行,Next i,已知数组,sc(0 To 4,0 To 4),大学计算机基础,沈阳药科大学,左下三角矩阵已知数组sc(0 To 4,0 To 4)大学计,51,左上三角矩阵,For i = 0 To 4, 5,次,For j = 0 to 4-i ,5-i,次,sc(i,j) = i*5 + j,Print sc(i,j);,Next j,Print ,换行,Next i,已知数组,sc(0 To 4,0 To 4),大学计算机基础,沈阳药科大学,左上三角矩阵已知数组sc(0 To 4,0 To 4)大学计,52,右上三角矩阵,For i = 0 To 4, 5,次,For j = i to 4, 5-i,次,sc(i,j) = i*5 + j,Print Tab(4*j);sc(i,j);,Next j,Print ,换行,Next i,大学计算机基础,沈阳药科大学,右上三角矩阵大学计算机基础沈阳药科大学,53,右下三角矩阵,For i = 0 To 4, 5,次,For j = 4-i to 4, i+1,次,sc(i,j) = i*5 + j,Print Tab(10 + 4 * j);sc(i,j);,Next j,Print ,换行,Next i,大学计算机基础,沈阳药科大学,右下三角矩阵大学计算机基础沈阳药科大学,54,数组排序(选择法),例,6-5.8,对已知存放在数组中的,n,个数,用选择法按递增顺序排序。,(1),从,n,个数的序列中选出最小的数,(,递增,),,与第,1,个数交换位置;,(2),除第,1,个数外,其余,n-1,个数再按,(1),的方法选出次小的数,与第,2,个数交换位置;,(3),重复,(1)n-1,遍,最后构成递增序列。,大学计算机基础,沈阳药科大学,数组排序(选择法)大学计算机基础沈阳药科大学,55,For i = 1 To n - 1,iMin= i,For j = i+1 To n,If iA(j) iA(j+1) Then,若次序不对,则马上进行交换位置,t = iA(j) : iA(j) = iA(j+1) : iA(j+1) = t,End If,Next j,出了内循环,一轮排序结束,最大数已冒到最上面,Next i,大学计算机基础,沈阳药科大学,大学计算机基础沈阳药科大学,58,数组元素的插入与删除,(1),插入,例,6-5.10,在有序数组,a(1 to n)(,原有,n-1,个元素,),插入一个值,Key,元素,算法:,查找要插入的位置,k,(,1=k=n-1,),腾出位置,把最后一个元素开始到第,K,个元素往后移动一个位置,第,k,个元素的位置腾出,就可将数据,Key,插入,注意,:,redim preserve,的应用,大学计算机基础,沈阳药科大学,数组元素的插入与删除注意:redim preserve的应用,59,(2),删除,要找到欲删除的元素的位置,k,;然后从,k+1,到,n,个位置开始向前移动;最后将数组元素减,1,。,注意,:,redim preserve,的应用,大学计算机基础,沈阳药科大学,(2) 删除 注意:redim preserve的应用大学计,60,End of the chapter,沈阳药科大学计算机教研室,End of the chapter沈阳药科大学计算机教研室,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


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

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


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