2016 - 2024

感恩一路有你

按键精灵数组的语法及应用

浏览量:2899 时间:2024-03-14 12:31:10 作者:采采

引例

求100个学生的平均成绩及超过平均成绩的人数。如果用一般变量来表示成绩,需要用100个变量,如:mark1、mary2、……mark100。若用数组,可以只用一个来表示mark(99)。

基本概念

数组是同类型变量的一个有序的集合。如:A(99),表示一个包含100个数组元素的名为A的数组。

数组元素:即数组中的变量。用下标表示数组中的各个元素。

表示方法:数组名(P1,P2,……)

其中P1、P2表示元素在数组中的排列位置,称为“下标”。

如:A(3,2)代表二维数组A中第3行第2列上的那个元素。

数组维数:由数组元素中下标的个数决定,一个下标表示一维数组,二个下标表示二维数组。

VB中有一维数组、二维数组、最多60维数组。

下标:下标表示顺序号,每个数组有一个唯一的顺序号,下标不能超过数组声明时的上、下界范围。下标可以是整型的常数、变量、表达式,甚至又是一个数组元素。下标的取值范围是:缺省下界时,系统默认取0。

数组声明

数组必须先声明后使用。声明数组就是让系统在内存中分配一个连续的区域,用来存储数组元素。

声明内容:数组名、类型、维数、数组大小。

一般情况下,数组中各元素类型必须相同,但若数组为Variant时,可包含不同类型的数据。

静态数组:声明时确定了大小的数组。

动态数组:声明时没有给定数组大小,使用时需要用ReDim语句重新指出其大小。使用动态数组的优点是根据用户需要,有效地利用存储空间,它是在程序执行到ReDim语句时才分配存储单元,而静态数组是在程序编译时分配存储单元。

静态数组及声明

一维数组

静态一维数组的声明形式:Dim 数组名(下标)

下标必须为常数,不可以为表达式或变量;

下标下界最小为-32768,最大上界为32767;省略下界,其默认值为为0,一维数组的大小为:上界-下界

如果省略类型,则为变体型例:(1)Dim A(10)声明了A是数组名、一维数组、有11个元素,下标的范围是0~10.

多维数组

静态多维数组的声明形式:Dim 数组名(下标1[,下标2…])

下标个数决定数组的维数,最多60维。

每一维的大小上界-下界;数组的大小每一维大小的乘积。

例:Dim C(5, 4)声明了C是数组名、长整型、二维数组、第一维下标范围为0~5,第二维下标的范围是0~4,占据6x5个长整型变量的空间。

注意事项

在有些语言中,下界一般从1开始,为了便于使用,在VB的窗体层或标准模块层用Option Base n语句可重新设定数组的下界,如Option Base 1.

在数组声明中的下标关系到每一维的大小,是数组说明符,而在程序其他地方出现的下标为数组元素,两者写法相同,但意义不同.

在数组声明时的下标只能是常数,而在其他地方出现的数组元素的下标可以是变量.

动态数组及声明

动态数组的建立与声明

建立动态数组的方法是:利用Dim、Private、Public语句声明括号内为空的数组,然后在过程中用ReDim语句指明该数组的大小。语法是:ReDim 数组名(下标1[,下标2…])

其中下标可以是常量,也可以是有了确定值的变量,类型可以省略,若不省略,必须与Dim中的声明语句保持一致.

例:Dim D() Sub Form_Load() … ReDim D(4,6) … End Sub

注意事项

在动态数组ReDim语句中的下标可以是常量,也可以是有了确定值的变量;

在过程中可以多次使用ReDim来改变数组的大小,也可改变数组的维数.

每次使用ReDim语句都会使原来数组中的值丢失,可以在ReDim语句后加Preserve参数来保留数组中的数据,但使用Preserve只能改变最后一维的大小,前面几维大小不能改变.

数组的基本操作

给数组元素赋初值

利用循环结构

例:Dim i, A(10) For i0 To 10 A(i)0 Next

利用Array函数

例:Dim a , b , i a Array (1,2,3,4,5) b Array ("abc","def","67") For i0 To Ubound(a) msgbox a(i) Next For i0 To Ubound(b) msgbox b(i) Next

数组的输入

通过InputBox函数输入适合输入少量数据.

例:Dim sB(3,4) For i0 To 3 For j0 To 4 SB(i,j) InputBox("输入" i j "的值") Next Next

通过文本框控件输入 对大批量的数据输入,采用文本框和函数split()join()进行处理,效率更高.

数组的赋值

在VB6.0中可以直接将一个数组的值赋值给另一个数组:

Dim a(3), b() A(0)2: A(1)5: A(2)-2: A(3)2 ba

在早期的VB中,这需要用循环语句才可以实现: ReDim b(UBound(a)) For I0 to UBound(a) b(I)a(I) Next 注意:赋值号两边的数据类型必须一致;如果赋值号左边的是一个动态数组,则赋值时系统自动将动态数组ReDim成右边相同大小的数组;如果赋值号左边的是一个大小固定的数组,则数组赋值出错.

数组的输出

用For…Next循环语句输出.

求数组中最大元素和所在下标及各元素之和

求数组中最大元素及下标,一般假设第一个元素及下标为最大,然后将该数与数组中的其他元素逐一比较,若有比其大的就替换,同时替换下标.

交换数组中各元素

交换的要求是将数组第一个元素与最后一个交换,第二个与倒数第二个交换,依次类推.

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。