VB中的数组.docx

上传人:scccc 文档编号:14041282 上传时间:2022-01-31 格式:DOCX 页数:7 大小:16.07KB
返回 下载 相关 举报
VB中的数组.docx_第1页
第1页 / 共7页
VB中的数组.docx_第2页
第2页 / 共7页
VB中的数组.docx_第3页
第3页 / 共7页
VB中的数组.docx_第4页
第4页 / 共7页
VB中的数组.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《VB中的数组.docx》由会员分享,可在线阅读,更多相关《VB中的数组.docx(7页珍藏版)》请在三一文库上搜索。

1、第五章VB中的数组5.1数组的概念1 弓I例求100个学生的平均成绩及超过平均成绩的人数。如果用一般变量来表示成绩,需要用100个变量,如:markl、mary2、 marklOO。若用数组,可以只用一个来表示mark( 1To 100) 2基本概念数组:是同类型变量的一个有序的集合。女口: A ( 1 To 100 ),表示一个包含100个数组元素的名为A的数组。数组元素:即数组中的变量。用下标表示数组中的各个元素。表示方法:数组名(P1, P2,)其中P1、P2表示元素在数组中的排列位置,称为“下标”。如:A(3,2)代表二维数组A中第3行第2列上的那个元素。数组维数:由数组元素中下标的个

2、数决定,一个下标表示一维数组,二个下标表示二维数 组。VB中有一维数组、二维数组最多 60维数组。下标:下标表示顺序号,每个数组有一个唯一的顺序号,下标不能超过数组声明时的上、下界范围。 下标可以是整型的常数、变量、表达式,甚至又是一个数组元素。下标的取值范围是:下界To上界,缺省下界时,系统默认取0。3数组声明数组必须先声明后使用。声明数组就是让系统在内存中分配一个连续的区域,用来存储数组元素。声明内容:数组名、类型、维数、数组大小。一般情况下,数组中各元素类型必须相同,但若数组为 Variant时,可包含不同 类型的数据。静态数组:声明时确定了大小的数组。动态数组:声明时没有给定数组大小(

3、省略了括号中的下标),使用时需要用 重新指出其大小。使用动态数组的优点是根据用户需要,有效地利用存储空间,它是在程序执行到 时才分配存储单元,而静态数组是在程序编译时分配存储单元。5.2静态数组及声明1 一维数组静态一维数组的声明形式:Dim数组名(下标)As类型 说明:(1)下标必须为常数,不可以为表达式或变量;(2)下标下界最小为-32768,最大上界为32767 ;省略下界,其默认值为为组的大小为:上界下界+1(3)如果省略类型,则为变体型ReDim语句ReDim语句0,一维数例:(1) Dim A ( 10) As Integer声明了 A是数组名、整型、一维数组、有11个元素,下标的

4、范围是(2) Dim B (-3 To 5) As String*3声明了 B是数组名、字符串型、一维数组、有9个元素,下标的范围是-35,每个元素最 多存放3个字符。2多维数组静态多维数组的声明形式:Dim数组名(下标1,下标2)As类型说明: (1)下标个数决定数组的维数,最多60维。(2)每一维的大小=上界-下界+1 ;数组的大小=每一维大小的乘积。例:Dim C (-1 To 5 ,4) As Long声明了 C是数组名、长整型、二维数组、第一维下标范围为-15,第二维下标的范围是04, 占据7x 5个长整型变量的空间。3注意事项(1)在有些语言中,下界一般从1开始,为了便于使用,在V

5、B的窗体层或标准模块层用Option Base n语句可重新设定数组的下界,如Option Base 1。(2)在数组声明中的下标关系到每一维的大小,是数组说明符,而在程序其他地方出现的下标为数 组元素,两者写法相同,但意义不同。(3)在数组声明时的下标只能是常数,而在其他地方出现的数组元素的下标可以是变量。5-3动态数组及声明1 动态数组的建立与声明建立动态数组的方法是:利用 Dim、Private、Public语句声明括号内为空的数组,然后在过 程中用ReDim语句指明该数组的大小。语法是:ReDim数组名(下标1 ,下标2)As类型其中下标可以是常量,也可以是有了确定值的变量,类型可以省

6、略,若不省略,必须与Dim中的声明语句保持一致。例:Dim D ( ) As SingleSub Form Load ()ReDim D ( 4,6 )End Sub2注意事项(1)在动态数组ReDim语句中的下标可以是常量,也可以是有了确定值的变量;(2 )在过程中可以多次使用ReDim来改变数组的大小,也可改变数组的维数。(3 )每次使用ReDim语句都会使原来数组中的值丢失,可以在 ReDim语句后加Preserve参 数来保留数组中的数据,但使用Preserve只能改变最后一维的大小,前面几维大小不能改变。3-动态数组使用示例5.4数组的基本操作1 给数组元素赋初值(1)利用循环结构例

7、:Dim iA ( 1 To 10 ) As IntegerFor i=1 To 10A (i) =0Next i(2)利用Arra函数例: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)Picture!.print a (i)Next iFor i=0 To Ubound (b )Picturel .print b(i);u;Next i2数组的输入(1)通过InputBox函数输入适合输入少量数据。例:Dim sB( 3,4 ) As sing

8、erFor i=0 To 3For j=0 To 4SB(ij) =lnputBox(H 输入 ” & i & j & ” 的值)Next Next i(2)通过文本框控件输入对大批量的数据输入,采用文本框和函数split()join()进行处理,效率更高。3数组的赋值在VB6.0中可以直接将一个数组的值赋值给另一个数组:Dim a(3) as integer, b() as integerA(0)=2: A(1)=5: A(2)=-2: A(3)=2 b=a在早期的VB中,这需要用循环语句才可以实现:ReDim b(UBound(a)For l=0 to UBound b(D=a(l)Nex

9、t i注意:(1)赋值号两边的数据类型必须一致;(2)如果赋值号左边的是一个动态数组,则赋值时系统自动将动态数组ReDim成右边相同大小的数组;(3)如果赋值号左边的是一个大小固定的数组,则数组赋值出错。4数组的输出用For.Next循环语句输出。5求数组中最大元素和所在下标及各元素之和求数组中最大元素及下标,一般假设第一个元素及下标为最大,然后将该数与数组中的其他元素逐一 比较,若有比其大的就替换,同时替换下标。6交换数组中各元素交换的要求是将数组第一个元素与最后一个交换,第二个与倒数第二个交换,依次类推。5.5控件数组1 控件数组的概念控件数组是由一组相同类型的控件组成的,它们共用一个控件

10、名,具有相同的数组。控件数 组适用于若干个控件执行的操作相似的场合,控件组共享同样的事件过程。控件数组通过索引号 (属性中的Index )来标识各控件,第一个下标是0。如:Text1(0)、Textl、Textl、Textl (3)2控件数组的建立(1 )在设计时建立步骤:1)在窗体上画出某控件,并进行属性设置。2)选中该控件进行“复制”和“粘贴”操作,系统提示“是否建立控件数组”,选 择是即可。多次粘贴就可以创建多个控件元素。3)进行事件过程的编程。(2)运行时添加控件数组方法:1 )在窗体上画出某控件,设置该控件的Index值为0,表示该控件为数组。2) 在编程时通过Load方法添加其余若

11、千个元素,也可以通过Unioad删除某个添加的元素。3) 每个添加的控件数组通过Left和Top属性,确定其在窗体上的位置,并将Visibie设置为True。使用示例:建立一个类似国际象棋的棋盘,要求黑白交替,运行时单击某个棋格,会改变颜色并显 示其序号。5.6自定义数据类型1.自定义数据类型的定义是指由若干标准数据类型组成的一种复合类型,也称为记录类型。(1 )定义方式:ETypTyi元定义类型下标)As类型名下类元标型素(名名可选为表标)示准自类表定型示义是类数型组中,的一个成员例:定义一个学生信息的自定义类型:Type studtypeNo As Integer定义学号Name As S

12、tring*1O 定义姓名Sex As String*2 定义性别Mark(1 TO 4) As Single 定义4门课程的成绩Total As Single定义总分End Type2)注意事项1)自定义类型一般在标准模块(.bas)中定义,默认是Public2 )自定义类型中的元素可以是字符串,但应是定长字符串3)不可把自定义类型名与该类型的变量名混淆4)注意自定义类型变量与数组的差别:它们都由若干元素组成,前者的元素代表不同性质、不同类型的 数据,以元素名表示不同的元素;后者存放的是同种性质、同种类型的数据,以下标表示不同元素。2.自定义型变量的声明和使用使用形式:Dim变量名As自定义

13、类型名 例如:Dim student As studtype , mystud As studtype 自定义类型中元素的表示方法是:变量名.元素名女口 : student.name student.mark(4) 为了简单起见,可以用WithEnd With语句进行简化。例:With student.no=99001.name=H.sex=H.total=0 for 1=1 to 4.mark(l)=int(rnd*101)随机产生0-100之间的分数.total=.totak.may(l)next IEnd WithMystud=student 同种自定义类型变量可以直接赋值3,自定义类型数组的使用自定义类型数组就是数组中的每个元素都是自定义类型。100个学生的记录例如:自定义一个由学生姓名、成绩组成的学生记录类型,用来存放

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1