数组2.docx
- 文档编号:3043877
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:5
- 大小:15.93KB
数组2.docx
《数组2.docx》由会员分享,可在线阅读,更多相关《数组2.docx(5页珍藏版)》请在冰豆网上搜索。
数组2
数组
[引例]任意读入100个数,然后逆序输出。
PrivateSubCommand1_Click()
ConstN%=3
Dimx(1ToN)AsInteger
DimiAsInteger
Fori=1ToN
x(i)=InputBox(":
")
Nexti
Fori=NTo1Step-1
Printx(i);
Nexti
EndSub
引入数组的原因:
数据量增大
一、数组的定义(一维数组)
[格式]
Dim数组名(下界To上界)As类型名
[说明]
(1)下界、上界必须是数值型常量(最好是整型),下界<=上界,数组元素的个数=上界-下界+1。
(2)下界(To)可以省略,默认为0;
(3)可以在“通用声明段”写上
OptionBase1
使得下界为1。
(4)OptionBase后只可以是0或1。
但是当显式定义的下界与0或1冲突时,以显式定义的为准。
(5)数组元素
例如:
Dimx(1to5)AsInteger
则数组x含有5个元素:
X
(1),x
(2),x(3),x(4),x(5)
每个数组元素与同类型的普通变量使用要领完全相同。
二、数组的基本操作
1、数组元素获得值(循环)
(1)获得有规律的值
用循环语句(For),和赋值语句完成
'10个元素2、4、6……
OptionBase1
PrivateSubCommand1_Click()
Dimx(10)AsInteger
Dimi%
Fori=1To10
x(i)=2*i
Printx(i)
Nexti
EndSub
(2)获得无规律的值
用循环语句(For),和输入语句(Inputbox、文本)完成
2、输出及其他处理也用循环完成(通常下标兼做循环控制变量)
三、重要算法
1.求最值
例:
任意读入10个字符,输出其中最大的字符及其输入的顺次(即第几个被读入的)。
[
[算法要领:
首先假设第一个或最后一个元素最大(或最小),然后让其余每个元素与之比较。
]
OptionBase1
PrivateSubCommand1_Click()
Dimx(10)AsString*1
Dimi%,maxAsString*1,n%
Fori=1To10
x(i)=InputBox("输入字符")
Nexti
max=x
(1):
n=1
'通常假设第一个或最后一个元素最大
'其余每个元素跟max比
Fori=2To10
Ifx(i)>maxThenmax=x(i):
n=i
Nexti
Printmax,n
EndSub
2.查找
(1)顺序查找(线性查找)
[将查找关键值与每一个元素进行比对,一旦相等就终止;比较到最后一个元素后还是不等,则找不到!
]
例:
任意生成10个数(介于10~99之间的整数),查看其中是否有50这个数值。
[法一]For循环
OptionBase1
PrivateSubCommand1_Click()
ConstN%=10
Dimx(N)AsInteger,i%
Randomize
Fori=1ToN
x(i)=Int(Rnd*(99-10+1)+10)
Printx(i)
Nexti
'以下进行查找
Fori=1ToN
Ifx(i)=50Then
ExitFor
EndIf
Nexti
Ifi<=NThen'或x(i)=50
Print"有"
Else
Print"无"
EndIf
EndSub
[法二]DoWhile循环
OptionBase1
PrivateSubCommand1_Click()
ConstN%=10
Dimx(N)AsInteger,i%
Randomize
Fori=1ToN
x(i)=Int(Rnd*(99-10+1)+10)
Printx(i)
Nexti
'以下进行查找
i=1
DoWhilex(i)<>50
i=i+1
Ifi>10ThenExitDo
Loop
Ifi<=NThen'或x(i)=50
Print"有"
Else
Print"无"
EndIf
EndSub
[注意:
VB的数组下标不允许越界!
]
(2)折半查找(二分法查找)
[前提:
数组中的元素必须有序。
设原数组下界为low,上界为high,求出(low+high)/2存放到mid中,拿a(mid)与查找关键字x比对,若数组升序且a(mid)
]
例:
任意读入一个数,在某有序数组中查找是否有该数。
PrivateSubCommand1_Click()
Dima'变体型变量
Dimlow%,high%,mid%
a=Array(2,13,25,36,78)
x=InputBox("任意读入一数")
'以下折半查找
low=LBound(a)'求数组下界
high=UBound(a)'求数组上界
mid=(low+high)/2
DoWhilea(mid)<>xAndlow<=high
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组