




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五章 VB中的数组5.1 数组的概念1引例求100个学生的平均成绩及超过平均成绩的人数。如果用一般变量来表示成绩,需要用100个变量,如:mark1、mary2、mark100。若用数组,可以只用一个来表示mark(1 To100)。2基本概念数组:是同类型变量的一个有序的集合。 如:A(1 To 100),表示一个包含100个数组元素的名为A的数组。数组元素: 即数组中的变量。用下标表示数组中的各个元素。
2、0; 表示方法:数组名(P1,P2,) 其中P1、P2表示元素在数组中的排列位置,称为“下标”。 如:A(3,2)代表二维数组A中第3行第2列上的那个元素。数组维数: 由数组元素中下标的个数决定,一个下标表示一维数组,二个下标表示二维数组。
3、; VB中有一维数组、二维数组、最多60维数组。下标: 下标表示顺序号,每个数组有一个唯一的顺序号,下标不能超过数组声明时的上、下界范围。下标可以是整型的常数、变量、表达式,甚至又是一个数组元素。下标的取值范围是:下界 To 上界 ,缺省下界时,系统默认取0。3数组声明 数组必须先声明后使用。声明数组就是让系统在内存中分配一个连续的区域,用来存储数组元素。 声明内容:数组名、类型、维数、数组大小。 一般情况下,数组中各元素类型必须相同,但若数组为Var
4、iant时,可包含不同类型的数据。 静态数组:声明时确定了大小的数组。 动态数组: 声明时没有给定数组大小(省略了括号中的下标),使用时需要用ReDim语句重新指出其大小。 使用动态数组的优点是根据用户需要,有效地利用存储空间,它是在程序执行到ReDim语句时才分配存储单元,而静态数组是在程序编译时分配存储单元。5.2 静态数组及声明1 一维数组 静态一维数组的声明形式:
5、; Dim 数组名(下标) As 类型说明:(1)下标必须为常数,不可以为表达式或变量; (2)下标下界最小为-32768,最大上界为32767;省略下界,其默认值为为0,一维数组的大小为:上界-下界+1 (3) 如果省略类型,则为变体型例:(1) Dim A(10) As Integer 声明了A是数组名、整型、一维数组、有11个元素,下标的范围是010。 (2) Dim B(-3 To 5) As String*3 声明了B是数组名、字符串型、一维数组、有9个元素,下标的范围是-35,每个元素最多存放3个字符。2多维数
6、组 静态多维数组的声明形式: Dim 数组名(下标1,下标2) As 类型说明:(1)下标个数决定数组的维数,最多60维。 (2)每一维的大小=上界-下界+1;数组的大小=每一维大小的乘积。例:Dim C(-1 To 5, 4) As Long 声明了C是数组名、长整型、二维数组、第一维下标范围为-15,第二维下标的范围是04,占据7x 5个长整型变量的空间。3注意事项(1)在有些语言中,下界一般从1开始,为了便于使用,在VB的窗体层或标准模块层用Option Base n 语句可重新设定数组的下界,如Option Base 1。 (2
7、) 在数组声明中的下标关系到每一维的大小,是数组说明符,而在程序其他地方出现的下标为数组元素,两者写法相同,但意义不同。 (3) 在数组声明时的下标只能是常数,而在其他地方出现的数组元素的下标可以是变量。5.3 动态数组及声明1 动态数组的建立与声明建立动态数组的方法是:利用Dim、Private、Public语句声明括号内为空的数组,然后在过程中用ReDim语句指明该数组的大小。语法是: ReDim 数组名(下标1,下标2) As 类型 其中下标可以是常量,也可以是有了确定值的变量,类型可以省略,若不省略,必须与Dim中
8、的声明语句保持一致。例: Dim D() As Single Sub Form_Load() ReDim D(4,6) End Sub2注意事项(1)在动态数组ReDim语句中的下标可以是常量,也可以是有了确定值的变量; (2)在过程中可以多次使用ReDim来改变数组的大小,也可改变数组的维数。 (3)每次使用ReDim语句都会使原来数组中的值丢失,可以在ReDim语句后加Preserve参数来保留数组中的数据,但使用Preserve只能改变最后一维的大小,前面几维大小不能改变。3动态数组使用示例5.4 数组的基本操作1 给数组元素赋
9、初值(1) 利用循环结构例:Dim iA(1 To 10) As Integer For i=1 To 10 A(i)=0 Next i(2) 利用Array函数例:Dim a As Variant, b As Variant, i% a = Array (1,2,3,4,5) b = Array ("abc","def","67") For i=0 To Ubound (a) Picture1.print a(i);"" Next i For i=0 To Ubound (b)Pictur
10、e1.print b(i);"" Next i2数组的输入(1) 通过InputBox函数输入适合输入少量数据。例:Dim sB(3,4) As singer For i=0 To 3 For j=0 To 4 SB(i,j) =InputBox("输入" & i & j & "的值") Next j Next i(2) 通过文本框控件输入 对大批量的数据输入,采用文本框和函数split()join()进行处理,效率更高。3数组的赋值 在VB6.0中可以直接将一个
11、数组的值赋值给另一个数组: Dim a(3) as integer, b() as integer A(0)=2: A(1)=5: A(2)=-2: A(3)=2 b=a 在早期的VB中,这需要用循环语句才可以实现: ReDim b(UBound(a) For I=0 to UBound(a) b(I)=a(I) Next i 注意:(1)赋值号两边的数据类型必须一致; (2)如果赋值号左边的是一个动态数组,则赋值时系统自动将动态数组ReDim成右边相同大小的数组; (3)如果赋值号左边的是一个大小固定的数组,则数组赋值出错。4数组的输出用ForNext循环语句输出。
12、5求数组中最大元素和所在下标及各元素之和求数组中最大元素及下标,一般假设第一个元素及下标为最大,然后将该数与数组中的其他元素逐一比较,若有比其大的就替换,同时替换下标。6交换数组中各元素交换的要求是将数组第一个元素与最后一个交换,第二个与倒数第二个交换,依次类推。5.5 控件数组1控件数组的概念控件数组是由一组相同类型的控件组成的,它们共用一个控件名,具有相同的数组。控件数组适用于若干个控件执行的操作相似的场合,控件组共享同样的事件过程。控件数组通过索引号(属性中的Index)来标识各控件,第一个下标是0 。如:Text1(0)、Text1(1)、Text1
13、(2)、Text1(3)2控件数组的建立(1)在设计时建立 步骤:1)在窗体上画出某控件,并进行属性设置。 2)选中该控件进行“复制”和“粘贴”操作,系统提示“是否建立控件数组”,选择是即可。多次粘贴就可以创建多个控件元素。 3)进行事件过程的编程。(2)运行时添加控件数组方法:1)在窗体上画出某控件,设置该控件的Index值为0,表示该控件为数组。 2)在编程时通过Load方法添加其余若干个元素,也可以通过Unload删除某个添加的元素。 3)每个添加的控件数组通过Left 和Top属性,确定其在窗体上的位置,并将Visible设置为True。使用示例:建立一个类似国际象棋的棋盘,要求黑白交
14、替,运行时单击某个棋格,会改变颜色并显示其序号。5.6 自定义数据类型1. 自定义数据类型的定义是指由若干标准数据类型组成的一种复合类型,也称为记录类型。(1)定义方式:Type 自定义类型名 元素名(下标) As 类型名 元素名(下标) As 类型名 End Type元素名:表示自定义类型中的一个成员 下标(可选):表示是数组, 类型名:为标准类型例:定义一个学生信息的自定义类型: Type studtype No As Integer
15、 ' 定义学号 Name As String*10 ' 定义姓名 Sex As String*2 ' 定义性别 Mark(1 TO 4) As Single ' 定义4门课程的成绩 Total As Single ' 定义总分 End T
16、ype(2)注意事项1)自定义类型一般在标准模块(.bas)中定义,默认是Public2)自定义类型中的元素可以是字符串,但应是定长字符串3) 不可把自定义类型名与该类型的变量名混淆4) 注意自定义类型变量与数组的差别:它们都由若干元素组成,前者的元素代表不同性质、不同类型的数据,以元素名表示不同的元素;后者存放的是同种性质、同种类型的数据,以下标表示不同元素。2. 自定义型变量的声明和使用使用形式: Dim 变量名 As 自定义类型名 例如: Dim student As studtype, mystud As studtype 自定义类型中元素的表示方法是:变量名 . 元素名 如: student.mark(4)为了简单起见,可以用With End With 语句进行简化。 例: With student .no=99001 .name="" .sex="" .total=0 f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 1 《沁园春·长沙》 (教学设计)-2024-2025学年高一语文同步教学设计与知识梳理(统编版必修上册)
- 火电厂整改报告范文
- 浙江东北师范大学南湖实验学校人教版八年级上册历史与社会第四单元第一课 三国两晋南北朝:政权分立与民族汇聚教学设计
- 第五章 专题 斜面上的平抛 集体备课教学设计 -2023-2024学年高一下学期物理人教版(2019)必修第二册
- 2025年轨道车辆门系统合作协议书
- 2024浙江舟山市人才发展集团有限公司新城分公司拟聘用人员笔试参考题库附带答案详解
- 公司道路交通安全管理总结报道
- 第22课 抗日战争的胜利-2023-2024学年八年级历史上册核心素养驱动教学设计
- 2024年黑龙江漠河市市属国有企业公开招聘工作人员17人笔试参考题库附带答案详解
- 第五单元 第16课 二、网上购物 教学设计 2023-2024学年人教版初中信息技术七年级上册
- 热烈欢迎领导莅临指导ppt模板
- 不规则抗体筛查与鉴定
- 2023-2024人教版小学2二年级数学下册(全册)教案【新教材】
- 中国银行海尔多联机方案书
- 小学《体育与健康》体育基础理论知识
- JJG 144-2007标准测力仪
- GB/T 8417-2003灯光信号颜色
- GB/T 7984-2001输送带具有橡胶或塑料覆盖层的普通用途织物芯输送带
- GB/T 7324-2010通用锂基润滑脂
- GB/T 5916-2020产蛋鸡和肉鸡配合饲料
- GB/T 28114-2011镁质强化瓷器
评论
0/150
提交评论