vb数组

  • 格式:doc
  • 大小:81.00 KB
  • 文档页数:9

本节课教学目标:通过讲授和学生的动手练习,使学生了解VB数组的定义和应用方法。

教学类型:在多媒体教室直观讲授,引导学生进行简单程序设计操作。

加深对本次课内容的理解。

教学内容:静态数组、动态数组讲授45分钟第五章数组与过程前面所讨论的都是离散的单个数据和变量,即在某一个时刻一个变量只对应一个数据,通常又称之为简单变量。

如果所处理的数据量很大,利用简单变量就显得不方便,甚至是十分困难的。

例如要处理一个班级40名同学一门课程的成绩,用简单变量最少要40个;若又要表示讨论全班6门课程呢?全年级10个班呢?为了解决大批量的数据处理问题,VB中提供了数组(Array)变量。

数组是一种重要的数据结构,在许多程序设计语言中,都要直接或间接用到数组这种数据结构。

5.1静态数组一、数组的概念在VB中,如果把一组有序的数或变量作为一个整体来处理,这一组数或变量称为数组,数组中的每一个数或变量称为数组元素,每一个数组给定一个名称,叫做数组名,一个数组中各个数组元素之间的区别用数组名的下标来表示,放在数组名后的圆括号内。

数组中的任意一个数组元素都可以存放一个数据,和使用简单变量一样,所以又称数组元素为下标变量。

例如:可以用A来表示一个班50个同学的数学成绩,用A(1)表示1号同学的成绩;A(2)表示2号同学的成绩;A(3)表示3号同学的成绩;...;A(50)表示第50号同学的成绩。

则A为数组名,A(1)、A(2)、A(3)等都称为A数组的元素。

又如,可以用B数组表示全班同学语文、数学和英语三门课程的成绩,则可以用B (1,1)表示1号同学的语文成绩;B(1,2)表示1号同学的数学成绩;B(1,3)表示其英语成绩;以B(2,1)表示2号同学的语文成绩;B(2,2)表示2号同学的数学成绩;B(2,3)表示2号同学英语成绩;...;B(50,3)表示第50个同学的英语成绩。

A和B都是数组。

即由一些数和变量构成的序列或一个方形表就构成一个数组。

前者A称为一维数组,后者B称为二维数组。

数组也有数值型和字符串型等类型之分。

在一个数组中通常只能放臵一种类型的数据,并且与数组的类型一致。

此外,数组还有静态数组和动态数组之分。

在使用数组前通常都要对数组进行维数、类型及大小等内容的定义或说明。

二、静态数组定义静态数组是在定义数组时就指定了数组维数的多少及数组的大小。

1、语法DimReDimStaticPublic2、语法说明:(1)Dim:定义窗体模块数组。

ReDim:在过程中定义。

Static:在过程中定义。

Public:在标准模块中定义全局数组。

(2)数组名的命名规则和变量命名规则相同,但是数组名不能与一般变量同名。

(3)凡是VB的数据类型,在数组中都可以说明和使用,当“As类型”省略时,为变体型数组(Variant)。

(4)下限值和上限值的大小范围是从-32768至32767。

下限值及关键字TO可以省略,当省略时下限值为0。

使用数组时,其下标不能超出所定义的范围。

下标可以是负数。

(5)维数可以多达60维。

(6)数组要先定义后使用。

(7)在一个过程内部,数组名不能与某个变量同名。

(8)用Dim语句定义数据组,数值型元素臵0,字符型元素臵空字符串。

(9)可用类型说明符说明数组类型。

(10)若在定义时不指明下标,下标为0,这里可用Option Base 1定义下标为1。

例子:数组定义举例定义的例子数组维数数组元素Dim A(5) As Integer‘整型一维A(0), A(1),A(2), A(3), A(4), A(5)Dim A(1 To 5) As String‘字符型A(1),A(2), A(3), A(4), A(5)Dim B(2,3) As Single‘单精度实型二维B(0,0),B(0,1),B(0,2),B(0,3) B(1,0),B(1,1),B(1,2),B(1,3) B(2,0),B(2,1),B(2,2),B(2,3)Dim B(1 To 2,1 To 3) As Integer‘整型B(1,1),B(1,2),B(1,3) B(2,1),B(2,2),B(2,3)Dim C#(2,3,2) ‘双精度实型三维C(0,0,0),C(0,0,1),C(0,0,2) C(0,1,0),C(0,1,1),C(0,1,2) C(0,2,0),C(0,2,1),C(0,2,2) C(0,3,0),C(0,3,1),C(0,3,2) C(1,0,0),C(1,0,1),C(1,0,2) C(1,1,0),C(1,1,1),C(1,1,2) C(1,2,0),C(1,2,1),C(1,2,2) C(1,3,0),C(1,3,1),C(1,3,2) C(2,0,0),C(2,0,1),C(2,0,2) C(2,1,0),C(2,1,1),C(2,1,2) C(2,2,0),C(2,2,1),C(2,2,2) C(2,3,0),C(2,3,1),C(2,3,2)数组名([下限值To]上限值...[,[下限值To]上限值])[As类型]三、测试数组上、下标函数1、测试数组下标函数:Lbound(数组[,维])2、测试数组上标函数:Ubound(数组[,维])例子:Dim D(3, 5, 7,9)As StringPrivate Sub Form_Click()Print LBound(D, 1),Print UBound(D, 1)Print LBound(D, 2),Print UBound(D, 2)Print LBound(D, 3),Print UBound(D, 3)Print LBound(D, 4),Print UBound(D, 4)End Sub结果显示:0 30 50 70 9四、变体型(默认)数组若定义数组时不指定类型,则该数组是一个变体型数组。

其元素的类型可以不同。

即:Dim A(2,3)等同于:Dim A(2,3)As Variant例子:Dim A(5)Private Sub Form_Click()A(1)= "中华人民共和国"A(2)= 12345A(3)= 3456789A(4)= 987654321A(5)= "ABCDE" + "abcde"Print A(1)Print A(2)Print A(3)Print A(4)Print A(5)End Sub五、数组的操作数组的操作包括对数组元素进行数值的输入、输出和复制。

1、数组元素的赋值方法一:用赋值语句对数组元素逐个赋值。

例子:Dim A(5)Private Sub Form_Click()A(1) = "中华人民共和国"A(2) = 12345A(3) = 3456789A(4) = 987654321A(5) = "ABCDE" + "abcde"Print A(1)Print A(2)Print A(3)Print A(4)Print A(5)End Sub方法二:用赋值语句结合For循环语句。

Dim D(0 To 2, 1 To 3) As IntegerPrivate Sub Form_Click()For i = 0 To 2For j = 1 To 3D(i, j) = 100Print D(i, j)Next jNext iEnd Sub方法三:用InputBox函数。

Dim array1(5) As VariantPrivate Sub Form_Click()For i = 1 To 5array1(i) = InputBox("输入元素的值:")Next iFor i = 1 To 5Print array1(i)Next iEnd Sub方法四:对于变体型一维数组,可应用Array()函数赋值。

格式:Array(值1,值2,值3… …)例子:设一个一维变体型数组ABC,不指定维数,用Array()函数赋值,然后显示元素值。

Option Base 1Dim ABCPrivate Sub Form_Click()ABC = Array("One", "Two", "Three", "Four", 1, 2, 3, 4, 5, 6)For i = 1 To 10Print ABC(i)Next iEnd Sub2、数组元素值的输出用Print语句显示输出。

前面有相应的例子。

这里讨论如何进行“格式”输出。

例子:设有一个单精度实型三维数组array2(2,3,4),其元素值:11 12 13 1415 16 17 1819 20 21 2231 32 33 3435 36 37 3839 40 41 42源程序如下:Option Base 1Dim array2(2, 3, 4) As SinglePrivate Sub Form_Click()For i = 1 To 2For j = 1 To 3For k = 1 To 4array2(i, j, k) = InputBox("输入元素的值:")Next kNext jNext iFor i = 1 To 2For j = 1 To 3For k = 1 To 4Print array2(i, j, k); "";Next kPrintNext jPrintNext iEnd Sub3、F or Each … Next语句该语句是专门用于数组操作的语句。

(1)语句格式For Each 成员in 数组循环体[ Exit For]… …Next 成员(2)说明利用语句中的成员变量可实现数组元素的赋值、计算、显示等操作。

例子:设一个二维数组array5(3,4),将其中的第一个元素赋值100,后面的元素依次再加1赋值Option Base 1Dim array5(3, 4)Private Sub Form_Click()n = 100For Each x In array5 ’x为成员x = nn = n + 1Print xNext xEnd Sub六、嵌套数组在Visual Basic中,可以用一个数组作为另一个数组的元素。

在使用时,可将一个数组(嵌套数组)赋值给另一个数组(被嵌套数组)的元素,嵌套数组名后面加空括号。

要求:嵌套数组是数据类型,被嵌套数组不指定类型。

例子:将数组a(4)赋给数组b(2),Dim a(4)As IntegerDim b(2)Private Sub Form_Click()For i = 1 To 4a(i)= iNext ib(1)= a()b(2)= a()Print b(1)(1)Print b(1)(2)Print b(1)(3)Print b(1)(4)PrintPrint b(2)(1)Print b(2)(2)Print b(2)(3)Print b(2)(4)End Sub讲授40分钟5.2动态数组在应用程序设计时,常常会遇到事先不知道所需多么大的数组,比如要开发一个能通用的学籍管理系统中,要用到处理学生成绩的数据,需要数组,而这个系统要能适应于班级及人数都可能不同的学校,在设计时就无法确定,若事先定义得小了,会使在某些大的学校不能正常使用;若定义了很大的数组,对于不同的学校和班级,有可能常常是占用内存资源,降低系统的效率。