VB第5章+数组

上传人:油条 文档编号:48891213 上传时间:2018-07-21 格式:PPT 页数:31 大小:235KB
返回 下载 相关 举报
VB第5章+数组_第1页
第1页 / 共31页
VB第5章+数组_第2页
第2页 / 共31页
VB第5章+数组_第3页
第3页 / 共31页
VB第5章+数组_第4页
第4页 / 共31页
VB第5章+数组_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《VB第5章+数组》由会员分享,可在线阅读,更多相关《VB第5章+数组(31页珍藏版)》请在金锄头文库上搜索。

1、第五章 数组 数组:是同类型变量的一个有序的集合。 如:A(1 To 100),表示一个包含100个数组元素的名为A 的数组。 数组元素: 即数组中的变量。用下标表示数组中的各个元素 。表示方法:数组名(P1,P2,) 其中P1、P2表示元素在数组中的排列位置,称为“下标”。如:A(3,2)代表二维数组A中第3行第2列上的那个元 素。 数组维数: 由数组元素中下标的个数决定,一个下标表示一 维数组,二个下标表示二维数组。VB中有一维数组、二维数 组、最多60维数组。 下标: 下标表示顺序号,每个数组元素都有一个唯一的顺序 号,下标不能超过数组声明时的上、下界范围。下标可以是整 型的常数、变量、

2、表达式,甚至又是一个数组元素。下标的取 值范围是:下界 To 上界 ,缺省下界时,系统默认取0。 5.1 基本概念及语法5.1 基本概念及语法 数组必须先声明后使用。声明数组就是让系统在内存 中分配一个连续的区域,用来存储数组元素。 声明内容: 数组名、类型、维数、数组大小。 一般情况下,数组中各元素类型必须相同,但若数组 为Variant时,可包含不同类型的数据。 静态数组:声明时确定了大小的数组。 动态数组: 声明时没有给定数组大小(省略了括号 中的下标),使用时需要用ReDim语句重新指出其大 小。 使用动态数组的优点是根据用户需要,有效地 利用存储空间,它是在程序执行到ReDim语句时

3、才分 配存储单元,而静态数组是在程序编译时分配存储单 元。5.1.1静态数组 1 一维数组 静态一维数组的声明形式: Dim 数组名(下标) As 类型 说明: (1)下标必须为常数,不可以为表达式或变量。 (2)下标下界最小为-32768,最大上界为32767;省略下界 ,其默认值为为0,一维数组的大小为:上界-下界+1。 (3) 如果省略类型,则为变体型。 例: Dim A(10) As Integer 声明了A是数组名、整型、一维数组、有11个元素,下标 的范围是010。Dim B(-3 To 5) As String*3声明了B是数组名、字符串型、一维数组、有9个元素, 下标的范围是-

4、35,每个元素最多存放3个字符。5.1.1静态数组4静态数组使用示例 例【5-1】统计某班(假设30人)程序设计课程考试的平均成绩,并输出高于平 均分的成绩 const num = 30 dim a(1 to num) as integer, sum%, ave!, i%, n% sum=0 for i =1 to num a(i)=val(inputbox(“请输入第“ave n=0 for i = 1 to num if a(i)ave then print a(i) n = n+1 if n mod 5= 0 then print end if next i 产生10个随机数放在数组中,

5、按升序排序后 输出,如下图。 Option Base 1 Dim a(10) As Integer Private Sub Command1_Click() Label1.Caption = “原始值:“ Dim i As Integer Randomize For i = 1 To 10 a(i) = Rnd * 100 Label1.Caption = Label1.Caption + “ “ + Str(a(i) Label2.Caption = “ Next End Sub Private Sub Command2_Click() Label2.Caption = “排序后:“ Dim

6、 i As Integer, j As Integer Dim min As Integer, temp As Integer For i = 1 To 9 min = a(i) For j = i + 1 To 10 If min a(j) Then temp = a(j): a(j) = min: min = temp Next j a(i) = min Next i For i = 1 To 10 Label2.Caption = Label2.Caption + “ “ + Str(a(i) Next End Sub5.1.1静态数组 2多维数组 静态多维数组的声明形式: Dim 数组

7、名(下标1,下标2) As 类型 说明:(1)下标个数决定数组的维数,最多60维。(2)每一维的大小=上界-下界+1;数组的大小= 每一维大小的乘积。 例:Dim C(-1 To 5, 4) As Long 声明了C是数组名、长整型、二维数组、第一维下标范围为-1 5,第二维下标的范围是04,占据7x 5个长整型变量的空 间。 例:Dim D(5, 4) As Single 声明了D是数组名、字符串型、二维数组、第一维下标范围为 05,第二维下标的范围是04,占据6x 5个单精度型变量 的空间。5.1.1静态数组 3注意事项 (1)在有些语言中,下界一般从1开始,为了便于使用,在 VB的窗体层

8、或标准模块层用Option Base n 语句可重新设定 数组的下界,如Option Base 1。 (2) 在数组声明中的下标关系到每一维的大小,是数组说明 符,而在程序其他地方出现的下标为数组元素,两者写法相同 ,但意义不同。 (3) 在数组声明时的下标只能是常数,而在其他地方出现的 数组元素的下标可以是变量。 (4)获得数组的最大与最小下标。利用LBound 函数与 UBound 函数函数可以分别来获得数组的最小与最大下标, 其语法是:LBound(arrayname, dimension)UBound(arrayname, dimension)arrayname 必需的。数组变量的名称

9、,遵循标准的变量 命名约定。 dimension 可选的。指定返回哪一维的下界。1 表示第 一维,2 表示第二维,如此类推。如果省略 dimension,就 认为是 1。 定义一个3行2列的二维整形数组, 每个数组元素的值为其行号+列号的 值,并求所有数组元素值的和。 1 动态数组的建立与声明 建立动态数组的方法是:利用Dim、Private、Public语 句声明括号内为空的数组,然后在过程中用ReDim语句指明 该数组的大小。语法是:ReDim 数组名(下标1,下标2) As 类型其中下标可以是常量,也可以是有了确定值的变量,类型 可以省略,若不省略,必须与Dim中的声明语句保持一致。 例

10、: Dim D() As Single 定义动态数组Sub Form_Load() ReDim D(4,6) 定义数组的大小End Sub 例:Dim a( ) As Integer 定义动态数组ReDim a(1 to 5) 定义数组的大小Dim i as integerFor i=0 To 5a(i)=iNext i5.1.2动态数组5.1.2动态数组 2注意事项 (1)在动态数组ReDim语句中的下标可以是常量,也可以是有 了确定值的变量;(2)在过程中可以多次以使用 ReDim 语句反复地改变数组 的元素以及维数的数目,但是不能在将一个数组定义为某种数 据类型之后,再使用 ReDim

11、将该数组改为其它数据类型,除 非是 Variant 所包含的数组。如果该数组确实是包含在某个 Variant 中,且没有使用 Preserve 关键字,则可以使用 As type 子句来改变其元素的类型,但在使用了此关键字的情况 下,是不允许改变任何数据类型的。 (3)每次使用ReDim语句都会使原来数组中的值丢失,可 以在ReDim语句后加Preserve参数来保留数组中的数据,但使 用Preserve只能改变最后一维的大小,前面几维大小不能改变 。如果使用了 Preserve 关键字,就只能重定义数组最末维的 大小,且根本不能改变维数的数目。例如,如果数组就是一维 的,则可以重定义该维的大

12、小,因为它是最末维,也是仅有的 一维。不过,如果数组是二维或更多维时,则只有改变其最末 维才能同时仍保留数组中的内容。 5.1.2动态数组 3动态数组使用示例 例【5-5】从键盘输入数组元素的个数和每个元素的值,然后 交换最大元素和最小元素。 Private Sub Form_Click() Dim n, i As Integer Dim a(), temp, x, max, min Dim maxi, mini As Integer n = InputBox(“请输入元素的个数:“, “数据输入“, 5) If n = “ Or IsNumeric(n) = False Then MsgBo

13、x “未输入数据或数据输入有误!“, 64 + 0, “错误“: Exit Sub ReDim a(1 To n) Print “数据的初始值是:“ 5.1.2动态数组 For i = 1 To n a(i) = InputBox(“请输入第“ Next Print Print “交换后的数据是:“ max = a(1): min = a(1) For i = 1 To n If max a(i) Then min = a(i): mini = i Next temp = a(maxi): a(maxi) = a(mini): a(mini) = temp For i = 1 To n Pri

14、nt a(i) Next End Sub1控件数组的概念 控件数组是由一组相同类型的控件组成的,它们共用一个相同的控件名, 具有相同的的属性、事件和方法。控件数组适用于若干个控件执行的操作 相似的场合,控件数组共享同样的事件过程。控件数组通过索引号(属性 中的Index)来标识各控件,第一个下标是0 。例如,假定一个控件数据含 有3个命令按钮command1,则不管单击哪个命令按钮都会调用同一个 Click()事件,如果要确定单击的是哪一个命令按钮,则要通过其Index属 性(即下标值)来进行确认。其单击事件过程代码的格式为: Private Sub Command1_Click(Index

15、As Integer) End Sub 和只有一个按钮Command1的事件过程 Private Sub Command1_Click( ) End Sub 相比,按钮控件数组的事件过程后面括号中多了Index As Integer,而这 个Index就是事件过程的参数。对于控件数组参数Index是一个整数,它是 响应其中某个控件的唯一标识。 5.1.3控件数组5.1.3控件数组 2控件数组的建立 (1)在设计时建立 步骤:1)在窗体上画出某控件,并进行属性设置。 2)选中该控件进行“复制”和“粘贴”操作,系统提 示“是否建立控件数组”,选择是即可。多次粘贴就可以创建 多个控件元素。 3)进行事件过程的编程。 (2)运行时添加控件数组 方法: 1)在窗体上画出某控件,设置该控件的Index值为0,表示该 控件为数组。 2)在编程时通过Load方法添加其余若干个元素,也可以 通过Unload删除某个添加的元素。3)每个添加的控件数组通过Left 和Top属性,确定其在 窗体上的位置,并将Visible设置为True。5.1.3控件数

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号