掌握控件数组的建立和使用.PPTx
《掌握控件数组的建立和使用.PPTx》由会员分享,可在线阅读,更多相关《掌握控件数组的建立和使用.PPTx(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 of 63 .1 .1 数组的概念数组的概念 .2 .2 数组的基本操作数组的基本操作 .3 .3 动态数组动态数组 .4 .4 控件数组控件数组 .5 .5 常用算法程序示例常用算法程序示例第1页/共63页2 of 63 前面所说的变量都是指简单变量,即一个变量名对应一个存储单元,只能存储一个值,各个变量之间无关联。本章我们要介绍的是一种下标变量数组,是通过一个数组名和下标的组合来表示多个值。用一个相同的名字引用一组变量的数据。数组,一种复合结构的数据类型。作用:用于保存一组具有相同数据类型的有序的变量的集合。.1 .1 数组的概念数组的概念第2页/共63页3 of 63.1.1.1.1
2、 数组命名与数组元素数组命名与数组元素 命名规则与简单变量相同。命名规则与简单变量相同。(参阅参阅P45)数组元素:数组元素:数组元素的一般形式:数组元素的一般形式:数组名(下标数组名(下标1,下标,下标2,)Name(10)x(5)数组的维数:数组的维数:一维数组一维数组只需一个下标即可唯一确定一个数组元只需一个下标即可唯一确定一个数组元素素多维数组多维数组有两个或两个以上下标的数组,每个下有两个或两个以上下标的数组,每个下标对应一个标对应一个“维维”。a(1,3)t(1,2,5)第3页/共63页4 of 63.1.2 .1.2 数组定义数组定义 数组必须数组必须先定义后使用先定义后使用。数
3、组定义时,系统分配数组定义时,系统分配连续连续的内存空间,的内存空间,用于依次保存所有数组元素。用于依次保存所有数组元素。数组定义后就有了与其类型相应的数组定义后就有了与其类型相应的初值初值。固定大小数组与动态数组。固定大小数组与动态数组。第4页/共63页5 of 631 1、数组说明语句、数组说明语句 格式格式:Public|Private|Static|Dim Public|Private|Static|Dim 数组名数组名(To To1 ,To To,2,)as as 类型类型例如:例如:Dim a(10)As Integer,Name(30)As StringDim a(10)As I
4、nteger,Name(30)As String 说明说明:TO TO省略时,默认下界是省略时,默认下界是0 0。我们习惯于下标是从我们习惯于下标是从1 1开始,可在模块的开始,可在模块的“通用通用”声明声明段中使用如下语句段中使用如下语句 Option Base 1Option Base 1 则在缺省下界的情况下,默认下界是则在缺省下界的情况下,默认下界是1 1。第5页/共63页6 of 632 2 数组的上、下界数组的上、下界在固定大小数组定义时,上、下界可以是常量或常量表在固定大小数组定义时,上、下界可以是常量或常量表达式,达式,不得是变量不得是变量;上、下界应是整数,若不是,则奇数自动
5、四舍五入,偶上、下界应是整数,若不是,则奇数自动四舍五入,偶数五舍六入。数五舍六入。举例:Dim m as integer Const n=5 as integer Dim a(n)as integer Dim b(1 to 6.6)as integer Dim c(1 to 2*3)as integer Dim d(0 to m)as integer第6页/共63页7 of 633 3 数组的类型数组的类型可为任一简单数据类型可为任一简单数据类型4 4 数组的大小数组的大小E指数组中包含元素的个数。指数组中包含元素的个数。E一维数组元素个数:上界一维数组元素个数:上界-下界下界+1+1E二维
6、数组元素个数:二维数组元素个数:(上界(上界1 1-下界下界1 1+1+1)*(上界(上界2 2-下界下界2 2+1+1)第7页/共63页8 of 63.1.3 .1.3 数组的结构数组的结构 数组的所有元素是按一定数组的所有元素是按一定顺序顺序存放在存放在连续连续的内的内存单元中。存单元中。1.1.一维数组的结构一维数组的结构F例:例:Dim stra(3)As IntegerF逻辑结构:(stra(0),stra(1),stra(2),stra(3)F存储结构:按照下标从小到大依次存储存储结构:按照下标从小到大依次存储Stra(0)Stra(1)Stra(2)Stra(3)第8页/共63页
7、9 of 632 2 二维数组的结构二维数组的结构例:例:Option Base 1Option Base 1 Dim y(3,4)As Dim y(3,4)As IntegerInteger逻辑结构:逻辑结构:y(1,1),y(1,2),y(1,3),y(1,4)y(1,1),y(1,2),y(1,3),y(1,4)y(2,1),y(2,2),y(2,3),y(2,y(2,1),y(2,2),y(2,3),y(2,4)4)y(3,1),y(3,2),y(3,3),y(3,y(3,1),y(3,2),y(3,3),y(3,4)4)存储结构:存储结构:“按列存放按列存放”3 三维数组的结构l 行
8、、列和页组成的三维表。l 逻辑结构:见书P88l 存储结构:“逐页逐列”第9页/共63页10 of 63.2.2 数组的基本操数组的基本操作作.2.1 .2.1 数组元素的赋值数组元素的赋值.2.2 .2.2 数组元素的输出数组元素的输出.2.3 .2.3 数组元素的引用数组元素的引用第10页/共63页11 of 63.2.1.2.1 数组元素的赋值数组元素的赋值1 用赋值语句给单个数组元素赋值。Dim score(3)As Integer score(1)=90:score(2)=80 :score(3)=68 2 在循环结构中,用赋值语句逐一给数组元素赋值。Dim a(6)As Integ
9、er For i=1 to 6 a(i)=Int(99*Rnd)+1 a(i)=InputBox(“请输入a(”&i&”)”,”数组赋值”)利用InputBox函数给数组元素赋值 Print a(i);Next i一维数组用一层循环结构第11页/共63页12 of 63.2.2 .2.2 数组元素的输出数组元素的输出用用PrintPrint方法显示在窗体或图片框上方法显示在窗体或图片框上赋值给文本框的赋值给文本框的TextText属性,在文本框中显示属性,在文本框中显示调试时,调用调试时,调用DebugDebug的的PrintPrint方法在方法在“立即立即”窗口中显窗口中显示示.2.3 .2
10、.3 数组元素的引用数组元素的引用 注意:在引用数组元素时,元素的下标一定要在定注意:在引用数组元素时,元素的下标一定要在定义的上下界范围之内,否则义的上下界范围之内,否则“数组越界数组越界”出错。出错。第12页/共63页13 of 63Option Base 1Private Sub Form_click()Dim compare(12)as Integer,i as Integer Dim max as Integer,min as Integer Randomize For i=1 To 12 compare(i)=Int(90*Rnd)+10 Print compare(i);Next
11、 i Print Print 最大数是;max Print 最小数是;minEnd Submax=compare(1):min=compare(1)For i=2 To 12 If compare(i)max Then max=compare(i)ElseIf compare(i)min Then min=compare(i)End IfNext i例-1 产生12个两位数,从中找出最大值、最小值第13页/共63页14 of 63例:有一个一维数组a(20),要求按照每行6个元素的格式输出。数组元素为100-200之间的随机数。Option Base 1Private Sub Form_Cli
12、ck()Dim a(20)as Integer Dim i as Integer,j as Integer For i=1 To 20 a(i)=Int(101*Rnd)+100 Next iEnd Sub For i=1 To 20 Print a(i);j=j+1 Next iIf j Mod 6=0 Then Print第14页/共63页15 of 63二维数组引用必须用二重循环实现Option ExplicitOption Base 1Private Sub Form_Click()Dim i as Integer,j as Integer Dim a(3,4)as Integer R
13、andomize For i=1 To 3 For j=1 To 4 a(i,j)=Int(Rnd*31+20)Next j Next i For i=1 To 3 For j=1 To 4 Print a(i,j);Next j Print Next iEnd Sub程序分析:程序执行时,计数变量i和j的变化为:i=1时,j从1变化到4,结束内层循环,i变成2i=2时,j从1变化到4,结束内层循环,i变成3i=3时,j从1变化到4,结束内层循环,i变成4结束外层循环。循环变量(i,j)的变化过程为(1,1)(1,2)(1,3)(1,4)(2,1)(2,2)(2,3)(2,4)(3,1)(3,
14、2)(3,3)(3,4)正好和二维数组引用的下标一致。例:二维数组的赋值与输出For i=1 To 3 For j=1 To 4 Picture1.Print a(i,j);Next j Picture1.Print Next iFor i=1 To 3 For j=1 To 4 s=s&a(i,j)Next j s=s&Chr(13)&Chr(10)Next IText1.Text=svbCrLf第15页/共63页16 of 63例:下列程序完成在窗体上输出二维数组每行元素之和。回答问题:1、程序有没有错?2、错在哪里?3、输出语句应出现在什么地方?Option Base 1Private
15、Sub Form_Click()Dim a(4,5)as Integer Dim i as Integer,j as Integer Dim sum as Integer For i=1 To 4 For j=1 To 5 a(i,j)=Int(101*Rnd)+100 Print a(i,j);Next j Print Next i Print For i=1 To 4 For j=1 To 5 sum=sum+a(i,j)Next j Next I Print 第;i;行元素之和为:;sumEnd SubSum=0Print 第;i;行元素之和为:;sum程序执行结果界面第16页/共63页
16、17 of 63有关二维数组的常见题目:有关二维数组的常见题目:转置转置求对角线元素之和求对角线元素之和求周边元素之和求周边元素之和求上、下三角形元素之和求上、下三角形元素之和求鞍点、最大、最小元素求鞍点、最大、最小元素二维数组相乘二维数组相乘第17页/共63页18 of 63Option Base 1Private Sub Form_Click()Dim i as Integer,j as Integer,a(3,4)as Integer Randomize For i=1 To 3 For j=1 To 4 a(i,j)=Int(Rnd*31+20)Print a(i,j);Next j
17、Print Next IEnd Sub例:产生一个3行4列的矩阵,数据为20,50之间的随机数,然后将矩阵转置输出。For i=1 To 4 For j=1 To 3 Print a(j,i);Next j Print Next iFor j=1 To 4 For i=1 To 3 Print a(i,j);Next i PrintNext j思考题:求n阶方阵的转置矩阵,并输出?第18页/共63页19 of 63.1.4 数组函数及数组语句1、返回上、下界函数:上界:UBound(数组名,d)下界:LBound(数组名,d)说明:d代表维数。省略时表示返回第一维的值。Dim a(5)as I
18、nteger,B(2,3 to 5)as Integer a1=LBound(a)a2=UBound(a)b1=LBound(B,1)b2=LBound(B,2)b3=UBound(b,1)b4=UBound(b,2)Print a1;a2;b1;b2;b3;b4结果:0 5 0 3 2 5举例:第19页/共63页20 of 63格式:For Each Element In 语句块Exit For语句块 Next Element功能:依次(存储次序)处理每一个数组元数,直到数组结束。说明:Element是Variant变量,它逐个地代表数组中的每一个变量。2、For Each-Next 数组循
19、环结构第20页/共63页21 of 63Private Sub Form_Click()Dim E(2,3)as Integer,V as Variant Dim i as Integer,j as Integer For i=1 To 2 For j=1 To 3 E(i,j)=i*10+jPrint E(I,j);Next jPrint Next i For Each V In E Print V;Next VEnd Sub请注意:只能一行或一列输出,不能以矩阵形式输出。参见p90例:处理顺序为该数组的存储顺序按列!第21页/共63页22 of 63格式:变体变量名=array(n1,n2
20、,.)功能:将一个变体型变量创建成为一个一维数组,并包含指定的元素。元素的引用方式与一般数组一样。注意:array赋值函数只能给变体型变量赋值。不能给其他类型的变量及任何类型的数组赋值。Option Base 1Private Sub Form_Click()Dim a As Variant,b As Integer a=array(1,2,3,4,5,6,7,8,9,10)Print a(1),a(5),a(10)a=array Print a b=array(1,2,3,4,5,6,7,8,9,10)End Sub3、array赋值函数第22页/共63页23 of 63.3 .3 动态数组
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 掌握 控件 数组 建立 使用
限制150内