第五章 VB中的数组(重点概述) |
第五章 VB中的数组 5.1 数组的概念 1.引例 求100个学生的平均成绩及超过平均成绩的人数。 如果用一般变量来表示成绩,需要用100个变量,如:mark1、mary2、……mark100。若用数组,可以只用一个来表示mark(1 2.基本概念 数组:是同类型变量的一个有序的集合。 如:A(1 To 100),表示一个包含100个数组元素的名为A的数组。 数组元素: 即数组中的变量。用下标表示数组中的各个元素。 表示方法:数组名(P1,P2,……) 其中P1、P2表示元素在数组中的排列位置,称为“下标”。 如:A(3,2)代表二维数组A中第3行第2列上的那个元素。 数组维数: 由数组元素中下标的个数决定,一个下标表示一维数组,二个下标表示二维数组。 VB中有一维数组、二维数组、……最多60维数组。 下标: 下标表示顺序号,每个数组有一个唯一的顺序号,下标不能超过数组声明时的上、下界范围。下标可以是整型的常数、变量、表达式,甚至又是一个数组元素。 下标的取值范围是:下界 To 上界 ,缺省下界时,系统默认取0。 3.数组声明 数组必须先声明后使用。声明数组就是让系统在内存中分配一个连续的区域,用来存储数组元素。 声明内容:数组名、类型、维数、数组大小。 一般情况下,数组中各元素类型必须相同,但若数组为Variant时,可包含不同类型的数据。 静态数组:声明时确定了大小的数组。 动态数组: 声明时没有给定数组大小(省略了括号中的下标),使用时需要用ReDim语句重新指出其大小。 使用动态数组的优点是根据用户需要,有效地利用存储空间,它是在程序执行到ReDim语句时才分配存储单元,而静态数组是在程序编译时分配存储单元。 5.2 静态数组及声明 1. 一维数组 静态一维数组的声明形式: Dim 数组名(下标) [As 类型] 说明:(1)下标必须为常数,不可以为表达式或变量; 例: (1) Dim A(10) As Integer 2.多维数组 静态多维数组的声明形式: 说明: (1)下标个数决定数组的维数,最多60维。 例:Dim C(-1 To 5, 4) As Long 3.注意事项 (1)在有些语言中,下界一般从1开始,为了便于使用,在VB的窗体层或标准模块层用Option Base n 语句可重新设定数组的下界,如Option Base 1。 5.3 动态数组及声明 1. 动态数组的建立与声明 建立动态数组的方法是:利用Dim、Private、Public语句声明括号内为空的数组,然后在过程中用ReDim语句指明该数组的大小。语法是: 例: Dim D() As Single 2.注意事项 (1)在动态数组ReDim语句中的下标可以是常量,也可以是有了确定值的变量; 3.动态数组使用示例 5.4 数组的基本操作 1. 给数组元素赋初值 (1) 利用循环结构 例:Dim iA(1 To 10) As Integer (2) 利用Array函数 例:Dim a As Variant, b As Variant, i% 2.数组的输入 (1) 通过InputBox函数输入适合输入少量数据。 例:Dim sB(3,4) As singer (2) 通过文本框控件输入 对大批量的数据输入,采用文本框和函数split()\join()进行处理,效率更高。 3.数组的赋值 在VB6.0中可以直接将一个数组的值赋值给另一个数组: 注意:(1)赋值号两边的数据类型必须一致; 4.数组的输出 用For……Next循环语句输出。 5.求数组中最大元素和所在下标及各元素之和 求数组中最大元素及下标,一般假设第一个元素及下标为最大,然后将该数与数组中的其他元素逐一比较,若有比其大的就替换,同时替换下标。 6.交换数组中各元素 交换的要求是将数组第一个元素与最后一个交换,第二个与倒数第二个交换,依次类推。 5.5 控件数组 1.控件数组的概念 控件数组是由一组相同类型的控件组成的,它们共用一个控件名,具有相同的数组。控件数组适用于若干个控件执行的操作相似的场合,控件组共享同样的事件过程。控件数组通过索引号(属性中的Index)来标识各控件,第一个下标是0 。如:Text1(0)、Text1(1)、Text1(2)、Text1(3)…… 2.控件数组的建立 (1)在设计时建立 (2)运行时添加控件数组 方法:1)在窗体上画出某控件,设置该控件的Index值为0,表示该控件为数组。 使用示例:建立一个类似国际象棋的棋盘,要求黑白交替,运行时单击某个棋格,会改变颜色并显示其序号。 5.6 自定义数据类型 1. 自定义数据类型的定义 是指由若干标准数据类型组成的一种复合类型,也称为记录类型。 (1)定义方式: Type 自定义类型名 元素名:表示自定义类型中的一个成员 例:定义一个学生信息的自定义类型: (2)注意事项 1)自定义类型一般在标准模块(.bas)中定义,默认是Public 2. 自定义型变量的声明和使用 使用形式: Dim 变量名 As 自定义类型名 3.自定义类型数组的使用 自定义类型数组就是数组中的每个元素都是自定义类型。 |