数组Array[共28页]_第1页
数组Array[共28页]_第2页
数组Array[共28页]_第3页
数组Array[共28页]_第4页
数组Array[共28页]_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、6.1 数组的声明与使用,6.2 数组应用,6.3 控件数组,本章要求,返回目录,第六章 数组(Array,本章要求: 掌握数组的概念; 理解排序的三种常用方法; 掌握控件数组的应用方法,返回章首,下一页,第六章 数组,6.1 数组的声明与使用,6.1.1 静态数组的声明 静态数组是指在声明时已经确定了该数组中具有多少个元素. 格式:Dim|Private|Public|Static 数组变量名(下标) As 类型 说明: (1).的命名规则同简单变量一样。 (2).决定了数组的维数和元素的个数,数组分为静态数组和动态数组,上一页,返回章首,下一页,例如: Dim cj(1 to 80) As

2、 Single 定义了单精度类型一维数组,上界为80,下界为1, 共有80个元素,Public studentname (100) As String 定义了字符类型一维数组,上界为100,下界为0, 共有101个元素,Dim mark(1 to 10, 10) 定义了可变类型二维数组, 一维下界为1,上界为10;二维下界为0,上界为10.共有10*11=110个元素,上一页,返回章首,下一页,二维数组LArray(3,4)的下标排列如下,一个声明语句可以同时定义几个数组: Dim mark(1 to 100) As Integer , LArray(3,4) As Long 一维数组 mar

3、k 的下标排列如下,上一页,返回章首,下一页,6.1.2 数组的赋值及引用 1.数组的赋值: 可以用赋值语句、Inputbox函数或文本框给数组元素赋值。 由于数组元素很多,一般都伴随着循环语句的使用,格式Option Base 0|1 说明该语句必须在窗体级或标准模块级使用,0 或1表示下界。 如: Option Base 1 Dim a(4,5), b(0 to 4, 0 to 5,上一页,返回章首,下一页,2.数组的引用:引用数组时要指明数组名及下标, 下标可以是常量、变量、或数值表达式。但要注意,引用下标的取值范围不能超过所定义数组的上、下界,否则将出现“下标越界”的错误信息,注意:在

4、数组声明中的下标说明了数组的大小;而在程序其他过程中引用的数组下标表示数组中的一个元素。两者写法形式相同,但意义不同,上一页,返回章首,下一页,6.1.3 与数组有关的函数,1.Lbound 和 Ubound函数 Lbound |Ubound(数组名,数组维序号) 功能 Lbound 函数返回数组某维的下界值,Ubound 函数返回数组某维的上界值,其数据类型是long。数据维序号用1,2,3表示,缺省取1,上一页,返回章首,下一页,2.Array 函数 格式 Array (数据1,数据2,数据3.) 功能将数据1,数据2.分别赋给一个可变类型的简单变量或动态数组中,用它可方便的给一维数组各元

5、素赋值,但不能给二维以上的数组赋值。 注意: (1). 用 Array 对数组各元素赋值,声明的数组必须是可变类型的简单变量或动态数组; (2). 数组的下界默认为0,除非用 Option Base语句说明,上界由 Array 函数括号内的数据的个数决定,也可以通过函数Ubound获得,上一页,返回章首,下一页,3.IsArray 函数 格式 IsArray(变量名) 功能测试变量名是否为一个数组。若是数组, 函数值为True, 否则为False 例6-1 Array 和 IsArray 两函数的使用,上一页,返回章首,下一页,6.1.4 动态数组与数组重定义,1.动态数组的声明 动态数组是指

6、在声明时未给出数组的大小,既不指明上界、又不指明下界的数组。当要使用它时,随时用ReDim语句重新指出数组大小。 格式 Dim|Private|Public|Static 数组变量名() As 类型 说明 动态数组的声明除了大小和维数为空外,其他格式与静态数组一样,上一页,返回章首,下一页,格式 ReDim Preserve数组变量名(下标)As 类型 功能 用于为动态数组重新分配存储空间 说明 (1). 可以对同一个动态数组多次使用 ReDim 重新定义其大小。 (2). Preserve可选项只能用在改变最后一维的上界时,保留数组中原来的数据,否则原数据丢失。可以使用常量、变量或表达式。

7、(3). 不能对已定义的固定数组重新定义. (4). ReDim 语句只能在过程中使用,不能用在窗体和模块级。 (5). ReDim 不能改变动态数组的数据类型,2.数组重声明,上一页,返回章首,下一页,3.数组元素的初始化 一旦声明了数组,系统自动对每个元素的值进行初始化,即默认初值。数组元素的初值取决于数据类型,格式Erase 数组名1 ,数组名2,数组名3 说明对指定的固定大小的数组进行初始化; 对指定的动态数组释放所占的内存空间,在下次引用该动态数组之前, 必须用 ReDim 语句重新定义,上一页,返回章首,下一页,例6-2 在VB6.0 中,提供了数组对数组直接赋值,但在使用时应注意

8、:被赋值的数组必须声明为Variant类型的动态数组,否则会出错,例6-3 求Fibonacci数列:1,1,2,3,5,8,13,21,该数列满足下列规律:F1=1,F2=1,FN=FN-1+FN-2 要求输入项数, 在窗体上输出数列的各项,并要求每行输出4个数,上一页,返回章首,下一页,6.1.5 For EachNext 语句 格式 For Each 循环变量 In 数组名 循环体 Exit for Next 循环变量,上一页,返回章首,下一页,6.2 数组应用,6.2.1 排序,1.比较交换排序法,上一页,返回章首,下一页,2.选择交换排序法,上一页,返回章首,下一页,6.3 控件数组

9、,控件数组是由一组相同名称、相同类型的控件组成。这些控件的大多数属性相同,并接受同一事件。 控件数组元素都有一个唯一的索引号Index与其对应,假如一个控件数组有5个元素,则index值为0 - 4,程序根据 index值判断用户给哪个控件元素施加了“事件”,进而决定程序的进程,上一页,返回章首,下一页,6.3.1 创建控件数组 1.在创建界面时建立控件数组 方法一: 在窗体上先从工具箱中添加一个控件然后用“复制”,“粘贴” 命令,方法二:将窗体上多个相同控件的Name属性值设置为相同,上一页,返回章首,下一页,2.用命令添加、删除控件数组的元素 格式 load 控件数组(index) Unl

10、oad 控件数组(index) 说明 1).每个添加的元素必须通过left 和top属性确定其位置,Visible=True。 2).load 只能添加已有控件数组的元素,不能创建控件数组。 3).Unload 只能删除用load 添加的元素,不能删除设计时创建的元素,上一页,返回章首,下一页,6.3.2 控件数组应用举例 例6-8 设计一个简易计算器,要求能够进行整数的加、减、乘、除运算,并能将十进制转换为二进制、八进制、十六进制,还能进行开平方运算,例6-9 用load 添加控件数组元素的应用,上一页,返回章首,下一页,选择题: 1. Dim sum(10) as integer 声明了有

11、个元素的数组 9 B.10 C.11 D.12 2. Dim arrb(3 to 5,-2 to 2) 所定义的数组的元素个数是 20 B.12 C.15 D.24,上一页,返回章首,下一页,3. Option Base 1 Private Sub Form_Click() Dim a(4,3) As Integer Print Ubound(a,2) End Sub 显示的结果是 A.2 B.3 C.4 D.5,上一页,返回章首,下一页,4. 关于Redim语句,说法正确的是 Redim语句可以在过程外出现 Redim语句可以对已定义的固定数组重声明 可以对同一个动态数组多次使用Redim重

12、新定义其大小 一般情况下, Redim语句可以改变动态数组的数据类型,上一页,返回章首,下一页,5. Option Base 1 Dim a(0 to 5) As Integer, b(10) As Integer 不会出现下标越界的是 A. Print a(0) B. Print a(6) C. Print b(0) D. Print b(11,上一页,返回章首,下一页,6. Option Base 1 Private Sub Form_Click() Dim a,b A = Array(10,20,30): b = a(2) End Sub b的值为 A.10 B.20 C. 30 D.31,上一页,返回章首,下一页,7. 区分控件数组中不同元素的属性是 Name B.Index C. Caption D.Height 8. 关于Unload语句,说法不正确的是 Unload可以将窗体从内存中卸载 Unload可以删除用Load添加

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论