第三章 第三节 在数组中查找数据
一组相同类型的变量集合,集合中的每个元素都是独立的变量,它们能够通过数组序号被引用。
mark(1 to 100)表示一个包含100个数组元素的名为mark。
(2)数组元素(数组中的变量,用下标表示) 表示方法:数组名(P1,P2,……)
P1,P2……是“下标”,表示元素在数组中的排列位置。
(3)数组维数:(由数组元素中下标的个数决定)一个下标表示一维数组
VB中有一维数组、二维数组、……,最多有60维数组
(4)下标(表示顺序号)
①每个数组有一个唯一的顺序号;
②下标不能超过数组声明时的上、下界范围;
③下标可以是整型的常量、变量、表达式及一个数元素;
④取值范围:下界to 上界,缺省下界,默认为0。下界最小为-32768,上界最大为32767。
练习:判断下列数组的取值范围:A(10),B(-3 to 5)
(5)数组声明(先声明后使用)
声明数组——让系统在内存中分配一个连续的区域,用来存储数组元素。
声明内容:数组名、类型、维数、数组大小
二、静态数组
⑴一维数组
形式:Dim 数组名(下标) [AS类型]
①数组声明时的下标必须为常数,不可以是表达式或变量。
②一维数组的大小:上界-下界+1
例:Dim A(12) as integer
声明A是数组名、整型、一维数组、有13个元素、下标的范围是0~12。
练习:说明“Dim A(-3 to 6) as String * 3 ”包含的内容。
⑵多维数组
格式:Dim 数组名(下标1[,下标2……]) [AS 类型]
每一维的大小=上界-下界+1 数组大小=每一维大小的乘积
例:Dim C(-1 to 5,3) As Long
声明C是数组名、长整型、二维数组,第一维下标范围为-1~5,第二维下标范围为0~3,占据7×4个长整型变量的空间。
练习:
(1)多维数组中下标最少有 维数组,最多有 维数组。
(2)求该数组Dim A(5,-3 to 3)的数组大小
(3)试说明“Dim A(5,-2 to 3,4to 8) As Single”
结论
$在VB的窗体层或标准模块层用Option Base n语句可重新设定数组的下界,如:Option Base1。如果使用该语句,必须写在模块的所有过程之前;一个模块中只能出现一次Option Base,且必须位于带维数的数组声明之前。
$在数组声明中的下标关系到每一维的大小,是数组说明符,而在程序其他地方出现的下标为数组元素。
三、动态数组
利用Dim、Private、Public语句声明括号内为空的数组,然后用ReDim语句指明该数组的大小。
ReDim 数组名(下标1[,下标2……] ) [AS 类型]
⑴下标可以是常量、有了确定值的变量。
⑵要改变数组的维数,可在过程中多次使用ReDim来改变数组的大小。
⑶每次使用ReDim语句都会使原来数给中的值丢失,可以在ReDim语句后加工厂Preserve参数来保留数组中的数据,但Preserve只能改变最后一维的大小,前面几维大小不能改变。
四、数组的基本操作
⑵数组的输入
用InputBox函数实现
Dim SB(3,4) AS Single
For i=0 to 3
For j=0 to 4
SB(i,j)=InputBox(“输入” & I & j “的值”)
Next j
Next i
⑶数组的赋值
①赋值号两边的类型必须一致。
②若赋值号左边是一个动态数组,则赋值时,自动将ReDim赋给右边相同大小的数组。
③若赋值号左边是一个大小固定的数组,赋值有误。
实践题:
1.DNA中的碱基有A、G、T、T共四种,如何用数组表示这四个元素?
2.有一组元素包括大、小写字母及空格共53个,用数组方法表示。
3.数据类型有________ 、_________、_________、_________、_________、_________ 、 。
第二节 顺序查找
一、顺序查找
1.基本思想:进行查找时,一般从数据的第一个元素开始,按照数据的顺序查找指定的关键值;如果被查数据和该关键值相匹配,则表示找到;否则,则表示被查数据中不存在该关键值,查找失败。
2.平均查找长度
ASLsq= (n-i+1)=np1+(n-1)p2+……+2pn-1+pn
在等概率情况下,pi=1/n(1≤I≤n),故成功的平均查找长度为(n+…+2+1)=(n+1)/2
若K值不在表中,则须进行n=1比较之后才能确定查找失败。
ASLsq达到最小值的情况:qn≥qn-1≥……≥q2≥q1
3. 优点:算法简单,对表的结构无任何要求。
缺点:查找效率低,当n 较大时不宜采用查找。
实践题:
1.凯撒密码的原理是将“明文”中的每个字母用另外一个字母替换,这样就形成“密文”。已知凯撒密码的计算公式为F(a)=(a+k) mod n,k=3,n=26,如果将英文字母进行加密,其对应关系如下所示:
明文:A B C D……X Y Z
密文:D E F G……A B C
2.编写课本第54页的实践第2题(“明日之星”计分界面)





