VB6-new幻灯片

上传人:日度 文档编号:147971972 上传时间:2020-10-15 格式:PPT 页数:70 大小:839.50KB
返回 下载 相关 举报
VB6-new幻灯片_第1页
第1页 / 共70页
VB6-new幻灯片_第2页
第2页 / 共70页
VB6-new幻灯片_第3页
第3页 / 共70页
VB6-new幻灯片_第4页
第4页 / 共70页
VB6-new幻灯片_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《VB6-new幻灯片》由会员分享,可在线阅读,更多相关《VB6-new幻灯片(70页珍藏版)》请在金锄头文库上搜索。

1、第 六 章 数 组,掌握静态数组和动态数组的概念和基本操作 掌握控件数组的建立和使用方法 掌握常用算法,教学要求,教学内容,6.1 数组的概念 6.2 数组的基本操作 6.3 动态数组 6.4 控件数组 6.5 程序示例,6.1 数组的概念,6.1.1 数组命名与数组元素 6.1.2 数组定义 6.1.3 数组的结构 6.1.4 数组函数及数组语句,基本概念 前面所说的变量都是指简单变量,即一个变量名对应一个存储单元,只能存储一个值,各个变量之间无关联。 本章我们要介绍的是一种下标变量数组,是通过一个数组名和下标的组合来表示多个值。用一个相同的名字引用一组变量的数据。 数组,是VB支持的一种复

2、合结构的数据类型。 数组,是用于保存一组具有相同数据类型的有序的变量的集合。,6.1.1 数组命名与数组元素,命名规则与简单变量相同。(参阅P45) 数组名不是代表某一变量,而是一组变量。 数组元素: 由数组名和该元素在数组中的编号(索引、下标)唯一确定,下标是连续的整数。 数组元素的一般形式: 数组名(下标1,下标2,) 数组的维数: 一维数组只需一个下标即可唯一确定一个数组元素 多维数组有两个或两个以上下标的数组,每个下标对应一个“维”。,6.1.2 数组定义,数组必须先定义后使用。 定义数组时,确定其名称、数据类型、维数、每一维的上、下界。 数组定义时,系统分配连续的内存空间,用于依次保

3、存所有数组元素。 固定大小数组与动态数组。(参阅P84),1、数组说明语句,格式: Public|Private|Static|Dim 数组名( To , To,) As 类型 说明: 声明关键字决定作用域,见下页 TO 决定了每一维的大小,下界指下标的最小值,上界指下标的最大值,其中 TO可省略,此时,默认下界是0。 我们习惯于下标是从1开始,可在模块的“通用”声明段中使用如下语句 Option Base 1 则在缺省下界的情况下,默认下界是1。,注意:全局数组、全局符号常量和全局定长字符串只能 在标准模块中定义,2、数组的上、下界,上、下界表示下标的最大、最小值; 下界上界; 在固定大小数

4、组定义时,上、下界是常量或常量表达式,不得是变量; 上、下界应是整数,若不是,则自动四舍五入。,举例: Dim m as Integer Const n as Integer = 5 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,3、数组的类型,可为任一简单数据类型:Integer、Long、Single、Double、Date、Boolean、String、Object、Currency、Variant等。 4、数组的大小 指数组中包含元素的

5、个数,也称为数组的长度。 数组的大小第一维大小第二维大小第N维大小 维的大小维上界维下界1,5、数组的初始化 数组说明语句不仅定义了数组,分配了存储空间,而且还将数组初始化。,6.1.3 数组的结构,数组的所有元素是按一定顺序存储在连续的存储单元的。 1、一维数组的结构 例:Dim stra(3) 逻辑结构:(stra(0),stra(1),stra(2) stra(3) 存储结构:按照下标从小到大依次存储,2、二维数组的结构,例:Option base 1 Dim y(3,4) as Integer 逻辑结构: y(1,1),y(1,2),y(1,3),y(1,4) y(2,1),y(2,2

6、),y(2,3),y(2,4) y(3,1),y(3,2),y(3,3),y(3,4) 存储结构: “按列存放”,3、三维数组的结构,行、列和页组成的三维表。 逻辑结构:见P88 存储结构:“逐页逐列”,6.1.4 数组函数及数组语句 1、2 返回上、下界函数: 上界:UBound(数组名,d) 下界:LBound(数组名,d) 说明:d代表维数,省略时表示返回第一维的值,值为Long型,Dim A(5) As Integer, B(2, 3 to 5) As Integer a1=LBound(A) a1=UBound(A) b1=LBound(B,1) b2=LBound(B,2) b3=

7、UBound(B,1) b4=UBound(B,2) Print a1;a2;b1;b2;b3; b4,结果:0 5 0 3 2 5,举例,格式: Erase a1,a2,. 功能:对普通数组初始化(按数组类型给元素赋初值), 对动态数组进行存储空间释放。例:p.89,Option Base 1 Private Sub Form_Click() Dim a(3) As Integer a(1) = 1: a(2) = 2: a(3) = 3 Print a(1), a(2), a(3) Erase a Print a(1), a(2), a(3) End Sub,3 Erase 初始化数组语句

8、,格式: For Each Element In 语句组 Exit For 语句组 Next Element 功能:依次(存储次序)处理每一个数组元数,直到数组结束。 说明: Element是Variant变量,它逐个地代表数组中的每一个变量。,4 For Each-Next 数组循环结构,Private 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 + j Next j Nex

9、t i For Each V In E Print V; Next V End Sub,请注意:只能一行或一列输出,不能以矩阵形式输出。参见p90,例:,处理顺序为该数组的存储顺序按列!,6.2 数组的基本操作,6.2.1 数组元素的赋值 6.2.2 数组元素的输出 6.2.3 数组元素的引用,6.2.1 数组元素的赋值,1、用赋值语句给单个数组元素赋值。 Dim score(3) as integer score(1)=90 : score(2)=80 : score(3)=68 2、在循环结构中,用赋值语句逐一给数组元素赋值。 Dim a(1 to 6) as integer For i=

10、1 to 6 a(i)=int(99*rnd)+1 Next i 3、在循环结构中,利用Inputbox函数给数组元素赋值。,Dim a(1 to 6) as integer For i=1 to 6 a(i)=Inputbox(“请输入a(” Next i Print Print 最大数是; max Print 最小数是; min End Sub,max = compare(1): min = compare(1) For i = 2 To 12 If compare(i) max Then max = compare(i) ElseIf compare(i) min Then min =

11、compare(i) End If Next i,例6-1 产生12个两位数,从中找出最大值 、最小值,例: 有一个一维数组a(20) ,要求按照每行6个元素的格式输出。数组元素为100-200之间的随机数。,Option Base 1 Private Sub Form_Click() Dim a(20) As Integer Dim i As Integer, j As Integer For i = 1 To 20 a(i) = Int(101 * Rnd) + 100 Next i End Sub,For i = 1 To 20 Print a(i) ; j = j + 1 Next i

12、,If j Mod 6=0 Then Print,二维数组引用必须用二重循环实现,Option Explicit Option Base 1 Private Sub Form_Click() Dim i As Integer, j As Integer Dim a(3, 4) As Integer Randomize 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 i E

13、nd Sub,程序分析: 程序执行时,计数变量i和j的变化为: i=1时,j从1变化到4,结束内层循环,i变成2 i=2时,j从1变化到4,结束内层循环,i变成3 i=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,2)(3,3)(3,4) 正好和二维数组引用的下标一致。,例:二维数组的赋值与输出,For i = 1 To 3 For j = 1 To 4 s=s Next j Print Next i Print For i = 1 To 4 F

14、or j = 1 To 5 sum = sum + a(i, j) Next j Next I Print 第; i; 行元素之和为:; sum End Sub,Sum=0,Print 第; i; 行元素之和为:; sum,程序执行结果界面,有关二维数组的常见问题,转置 求对角线元素之和 求周边元素之和 求上、下三角形元素之和 求最大、最小元素 二维数组相乘,Option Base 1 Private Sub Form_Click() Dim i As Integer, j As Integer, a(3, 4) As Integer Randomize For i = 1 To 3 For

15、j = 1 To 4 a(i, j) = Int(Rnd * 31 + 20) Print a(i,j); Next j Print Next I End Sub,例:产生一个3行4列的矩阵,数据为20,50之间的随机数,然后将矩阵转置输出。,For i = 1 To 4 For j = 1 To 3 Print a(j ,i); Next j Print Next i,For j= 1 To 4 For i= 1 To 3 Print a( i , j); Next j Print Next i,思考题: 求n阶方阵的转置矩阵,并输出?,1、分别求一个3*3二维数组的主、副对角线元素之和。 2、求二维数组周边元素之和。,练 习,6.3 动态数组,定义:在程序运行过程中,可重新定义大小的数组。 说明语句: Dim 数组名()as 类型在变量说明部分 ReDim Preserve (维界定义)在可执行语句中,Private Sub Form_Click() Dim Pin( ) As Integer 说明整型的动态数组Pin Dim x as Integer X=Val(Text1.text) ReDim Pin(x) 重新说明数组Pin . End Sub,注意:- Redim 是可执行语句,只能出现在过程中 - 重新定义动态数组时,不能改变数据类

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

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