收藏 分销(赏)

第五章--VB中的数组.doc

上传人:a199****6536 文档编号:1672975 上传时间:2024-05-07 格式:DOC 页数:6 大小:52KB 下载积分:6 金币
下载 相关 举报
第五章--VB中的数组.doc_第1页
第1页 / 共6页
第五章--VB中的数组.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
第五章     VB中的数组 5.1    数组的概念 1.引例   求100个学生的平均成绩及超过平均成绩的人数。   如果用一般变量来表示成绩,需要用100个变量,如:mark1、mary2、……mark100。若用数组,可以只用一个来表示mark(1 To 100)。 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)下标必须为常数,不可以为表达式或变量;     (2)下标下界最小为-32768,最大上界为32767;省略下界,其默认值为为0,一维数组的大小为:上界-下界+1     (3) 如果省略类型,则为变体型 例: (1) Dim  A(10) As Integer       声明了A是数组名、整型、一维数组、有11个元素,下标的范围是0~10。    (2) Dim  B(-3 To 5) As String*3       声明了B是数组名、字符串型、一维数组、有9个元素,下标的范围是-3~5,每个元素最多存放3个字符。 2.多维数组    静态多维数组的声明形式:    Dim  数组名(下标1[,下标2…]) [As  类型]   说明: (1)下标个数决定数组的维数,最多60维。       (2)每一维的大小=上界-下界+1;数组的大小=每一维大小的乘积。   例:Dim  C(-1 To 5, 4) As  Long     声明了C是数组名、长整型、二维数组、第一维下标范围为-1~5,第二维下标的范围是0~4,占据7x 5个长整型变量的空间。 3.注意事项   (1)在有些语言中,下界一般从1开始,为了便于使用,在VB的窗体层或标准模块层用Option Base n 语句可重新设定数组的下界,如Option Base 1。   (2) 在数组声明中的下标关系到每一维的大小,是数组说明符,而在程序其他地方出现的下标为数组元素,两者写法相同,但意义不同。   (3) 在数组声明时的下标只能是常数,而在其他地方出现的数组元素的下标可以是变量。 5.3    动态数组及声明 1.  动态数组的建立与声明   建立动态数组的方法是:利用Dim、Private、Public语句声明括号内为空的数组,然后在过程中用ReDim语句指明该数组的大小。语法是:   ReDim  数组名(下标1[,下标2…]) [As  类型]   其中下标可以是常量,也可以是有了确定值的变量,类型可以省略,若不省略,必须与Dim中的声明语句保持一致。   例: Dim D() As Single      Sub Form_Load()      ……      ReDim D(4,6)      ……      End Sub 2.注意事项   (1)在动态数组ReDim语句中的下标可以是常量,也可以是有了确定值的变量;   (2)在过程中可以多次使用ReDim来改变数组的大小,也可改变数组的维数。   (3)每次使用ReDim语句都会使原来数组中的值丢失,可以在ReDim语句后加Preserve参数来保留数组中的数据,但使用Preserve只能改变最后一维的大小,前面几维大小不能改变。 3.动态数组使用示例 5.4    数组的基本操作 1.   给数组元素赋初值   (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)             Picture1.print b(i);"";             Next i 2.数组的输入  (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中可以直接将一个数组的值赋值给另一个数组:    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.数组的输出   用For……Next循环语句输出。 5.求数组中最大元素和所在下标及各元素之和   求数组中最大元素及下标,一般假设第一个元素及下标为最大,然后将该数与数组中的其他元素逐一比较,若有比其大的就替换,同时替换下标。 6.交换数组中各元素   交换的要求是将数组第一个元素与最后一个交换,第二个与倒数第二个交换,依次类推。 5.5    控件数组 1.控件数组的概念   控件数组是由一组相同类型的控件组成的,它们共用一个控件名,具有相同的数组。控件数组适用于若干个控件执行的操作相似的场合,控件组共享同样的事件过程。控件数组通过索引号(属性中的Index)来标识各控件,第一个下标是0 。如:Text1(0)、Text1(1)、Text1(2)、Text1(3)…… 2.控件数组的建立 (1)在设计时建立    步骤:1)在窗体上画出某控件,并进行属性设置。       2)选中该控件进行“复制”和“粘贴”操作,系统提示“是否建立控件数组”,选择是即可。多次粘贴就可以创建多个控件元素。       3)进行事件过程的编程。 (2)运行时添加控件数组   方法:1)在窗体上画出某控件,设置该控件的Index值为0,表示该控件为数组。       2)在编程时通过Load方法添加其余若干个元素,也可以通过Unload删除某个添加的元素。       3)每个添加的控件数组通过Left 和Top属性,确定其在窗体上的位置,并将Visible设置为True。   使用示例:建立一个类似国际象棋的棋盘,要求黑白交替,运行时单击某个棋格,会改变颜色并显示其序号。 5.6    自定义数据类型 1. 自定义数据类型的定义    是指由若干标准数据类型组成的一种复合类型,也称为记录类型。 (1)定义方式:   Type 自定义类型名      元素名[(下标)]  As 类型名       ……      元素名[(下标)]  As 类型名   End Type    元素名:表示自定义类型中的一个成员    下标(可选):表示是数组,    类型名:为标准类型   例:定义一个学生信息的自定义类型:     Type studtype       No   As  Integer        ' 定义学号       Name  As  String*10    ' 定义姓名       Sex  As  String*2       ' 定义性别       Mark(1 TO 4) As Single   ' 定义4门课程的成绩       Total As Single           ' 定义总分     End Type (2)注意事项   1)自定义类型一般在标准模块(.bas)中定义,默认是Public   2)自定义类型中的元素可以是字符串,但应是定长字符串   3)  不可把自定义类型名与该类型的变量名混淆  4) 注意自定义类型变量与数组的差别:它们都由若干元素组成,前者的元素代表不同性质、不同类型的数据,以元素名表示不同的元素;后者存放的是同种性质、同种类型的数据,以下标表示不同元素。 2. 自定义型变量的声明和使用    使用形式: Dim 变量名  As  自定义类型名    例如: Dim  student As studtype,  mystud  As studtype    自定义类型中元素的表示方法是:变量名 . 元素名  如:student.name  student.mark(4)   为了简单起见,可以用With …… End With 语句进行简化。 例:     With  student      .no=99001      .name=""      .sex=""      .total=0       for I=1 to 4      .mark(I)=int(rnd*101)     '随机产生0 - 100之间的分数      .total=.total+.may(I)     next I     End With     Mystud=student      ' 同种自定义类型变量可以直接赋值 3.自定义类型数组的使用    自定义类型数组就是数组中的每个元素都是自定义类型。    例如:自定义一个由学生姓名、成绩组成的学生记录类型,用来存放100个学生的记录。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服