内容正文:
2.5认识Visual Basic数组
Visual Basic6.0项目教程
同步精品课堂
电子工业出版社
任务一
定长数组
任务二
默认数组、数组初始化、访问数组的方法
任务三
动态数组
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
教学目标
一
1、掌握Visual Basic6.0中的定长数组
2、动态数组以及数组的基本操作
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
教学重点:
定长数组动态数组
教学难点:
循环和数组的结合
教学重难点
二
导入新课
三
我们了解Visual Basic6.0的常量以及变量,那么如果我想要存储很多的数据怎么办呢?如果想要对这一些列的数据进行排序那么定义很多变量就不合适了,所以Visual Basic为了应对这种情况引入了数组的概念。
思考思考问题::
任务一
定长数组
定长数组:
是指元素个数保持不变的数组。
在VisualBasic中可以使用以下语句来声明数组
数组:在VisualBasic中,把一组具有同一名称、不同下标(也称索引值)的变量称为变量数组,简称数组。数组中的每个变量称为数组元素。
新知讲授
四
新知讲授
四
注意:
当使用Dim语句声明数组时,应遵循以下语法格式:
Dim数组名([下标下界 To」下标上界[,下标下界To下标上界])[ As数据类型]
使用Dim语句在窗体模块、标准模块或过程中声明数组。
使用Private语句在窗体模块、标准模块或过程中声明数组。
使用Static 语句在过程中声明静态数组。
使用Public 语句在标准模块中声明全局数组。
01
2、下标下界和下标上界表示数组该维度的最小下标值和最大下标值,通过To关键字连接起来,代表下标的取值范围
1、当使用Dim语句定义数组时,数值数组中的全部元素初始化为0,字符串数组中的全部元素初始化为空字符串。
新知讲授
四
数组的注意事项:
4、 有一个下标的数组称为一维数组,有两个或多个下标的数组称为二维数组或多维数组。数组的维数最多可以有60维(60个下标)
3、如果省略了“下标下界 To"则数组默认下标下界为0。假如希望下标从1开始,则应通过Option Base 1语句来设置
新知讲授
四
6、在声明数组时,每一维元素的个数必须是常数,不能是变量和表达式。
7、数组的下标下界值必须小于数组的下标上界值
4、不能使用 Dim 语句对已经声明了的数组进行重新声明。
5、在同一过程中,数组名不能与其他变量名相同
新知讲授
四
2、UBound(数组名,维数):测试数组下标上届的函数
1、LBound(数组名,维数):测试数组下标下届的函数。
新知讲授
四
数组相关函数:
新知讲授
四
例如:
dim a(1 to 5) as integer
dim b(1 to 3,2 to 5) as integer
dim c(3,5) as integer
数组个数的求解:
一维数组:下标上界-下标下届+1
二维及多维数组:按照一维数组的求解的方法求出每一维数组的个数然后相乘
01
例如:
a数组是个一维数组数组的的个数是 5
b数组是个二维数组 按照二维数组的求解方法b数组的个数是 3*4=12个
c数组是二维数组,注意下标是从0开始的
c数组的个数是 4*6=24个
任务二
默认数组、数组初始化、访问数组的方法
新知讲授
四
默认数组:
在Visual Basic中,允许声明默认数组,即数据类型为可变类型的数组,可变类型数组的元素可以存放不同类型的数据,例如:Dim x(1 To 10)
数组x没有指定类型,默认为可变类型
等价于Dim x(1 To 10) As Varian
在一般情况下,声明数组用类型说明词指明类型,同一个数组只能存放同一个类型的数据
例如: Dim x(1 To 100)As Intege
数组x的类型是整型,数组元素中必须存放整型数据
01
02
新知讲授
四
Array函数的语法格式
数组名=Array(数组元素值)
具体示例如下:
x=ArTay(30,62,93,10,52,29,45)
数组x有7个元素: x(0)的值为30, x(1)的值为62, x(2)的值为93,以此类推。
数组的初始化就是给数组的各个元素赋初值。
数组在声明后,系统将数值型数组元素初始化为0,将字符串型和可变类型数组
元素初始化为空串,将逻辑型数组元素初始化为False
01
02
数组的初始化:
新知讲授
四
数组名可以是预先声明的,在其后没有括号。数组元素值是要赋给数组中各元素的值,各值之间以逗号分隔。如果不提供数组元素值,则创建一个长度为0的数组
使用 Array函数给数组赋初值时,数组变量只能是可变类型。 Array函数只适用一维数组,不能对二维或多维数组赋值
数组可以不声明直接使用也可以只声明数组、不声明类型或声明为可变类型。
01
02
使用Array函数的注意事项:
新知讲授
四
默认情况下,使用Array函数创建数组的下标下界为0。如果希望下标下界为1,则应使用Option Base 1语句
例如:Option Base 1
x=Array(5,6,7,8)
数组x有4个元素,分别是x(1)、 x(2)、x(3)和x(4),其值分别为5、6、7和8
03
新知讲授
四
在一般情况下,出现常数或变量的地方都可以引用数组元素。
例如:Dim y(3,5)As Single
引用数组y中的元素: y(1,2)、 y(I,j)、y(i+1.j+2)
Dim x(1 To 5) As Intege
数组x的元素有 x(1),x(2),x(3),x(4),x(5),不能有其他元素
引用数组元素是在数组名后的括号内指定下标
在引用数组元素时,数组名、类型和维数必须与声明数组时的一致。
如果建立的是二维或多维数组,则在引用时必须给出两个或多个下标。
引用数组元素时,下标值要在声明的范围内。
引用数组的注意事项:
新知讲授
四
3、对于元素较多的二维数组,通常采用二重循环实现对数组各个元素的遍历。
4、对于多维数组,通常采用多重循环实现对数组各个元素的遍历。
1、当数组较小或只需要对数组中的指定元素操作时,可以通过直接引用数组实现对数
组指定元素的操作。
2、对于元素较多的一维数组,通常采用一重循环实现对数组各个元素的遍历。
访问数组的常用方法:
新知讲授
四
例如:
option base 1
dim a(10,10) as integer
对以上数组进行遍历需要用到双重for循环
for i=1 to 10
for j=1 to 10
a(i,j)=i*j
next j
next i
01
任务三
动态数组
新知讲授
四
动态数组:
特点:动态数组可以使用变量作为下标值,在程序运行过程中完成声明,动态数组可以在任何时候改变大小。
概念:动态数组是指计算机在执行过程中才给数组开辟内存空间的数组,可以使用ReDim语句再次分配动态数组占据的内存空间,也可以使用 Erase语句删除它从而收回分配给动态数组的内存空间。
01
02
新知讲授
四
ReDim 语句
ReDim语句的功能:用来声明或重新声明原来用Private语句、 Public 语句或 Dim语句声明过的带空圆括号的动态数组。
语法格式如下:
ReDim[Preserve]数组名(下标,下标)As数据类型名称
在窗体级别、标准模块或过程中,用Dim语句(模块级数组)、 Public语句(全局数组)、 Private语句或Static语句(局部数组)声明一个没有下标的数组(括号不能省略)然后再工程中使用ReDim语句定义带下标的数组。、
例如:Dim a() as integer
03
04
新知讲授
四
动态数组注意事项:
在一个程序中,用Private语句 Public 语句或 Dim 语句声明过的已经带空圆括号(有维数下标)的动态数组,可以根据需要使用 ReDim 语句修改数组的维数和元素的个数但不能修改数据的类型。
可以用ReDim语句在过程中直接声明数组。对于用 ReDim语句声明的数组,如用ReDim语句重新声明,则只能修改数组中元素的个数,不能修改数组的维数。
01
02
新知讲授
四
动态数组注意事项:
ReDim 语句只能出现在事件过程中或通用过程中,用它定义的数组是一个临时数组,即在执行数组所在的过程时才能为数组开辟-一定的内存空间,当过程结束时,这部分内存立即被释放。
如果在 ReDim语句中使用了数组中的内容将被清除,在重新分配动态数组时,Preserve选项,则保留数组内容。
03
04
新知讲授
四
数组的清除:
3、如果数组是数值数组,则把数组中的所有元素置为0:如果数组是字符串数组或
可变类型数组,则把数组中的所有元素置为空字符串。
4、当把Erase语句用于动态数组时,将删除整个数组并释放数组所占用的内存,下一次使用时需要重新用ReDim语句定义。
1、 Erase语句的功能:释放动态数组的存储空间或清除定长数组的内容。
2、 Erase语句的语法格式
Erase数组名[,数组名]...
01
02
师生互动
五
1、数组声明后,所有元素初始化为0( )
解析:只有数值型数组元素初始化为0。本题答案为X。
X
2、若数组的下标下界省略,则默认为1( )
解析:若数组的下标下界省略,则默认为0。如果想让下标下界从 1开始,则声明前用Option Base 1语句。本题答案为X
X
师生互动
五
3、数组的下界必须小于上界。( )
解析:数组的下界必须小于上界。本题答案为√
√
4、数组的下界和上界必须为正数。( )
解析:数组的下界和上界可以是正数、负数和0。本题答案为X
X
师生互动
五
5、定长数组不能用Dim语句对已经声明的数组重新声明( )
解析:定长数组只能声明一次。本题答案为√
√
6、在声明数组时如果省略了类型,则默认为整型( )
解析:若在声明数组时省略了类型,则默认为可变类型。本题答案为X
X
课堂小结
七
谢谢
$$