根据对分查找的思想来查找两个递增序列中最小值所在的位置,其中第一个递增序列中的数据全部大于第二个递增序列中的数据,且两个序列中没有重复数据,如组合序列3、4、5、6、1、2是由两个递增序列“3、4、5、6”和“1、2”组成的,组合序列的最小值是1,在组合序列中的位置是第5位。
为实现上述功能,小王编写如下VB程序,首先在Text1中输入两个满足条件的序列,数字之间用“,”隔开且以“,”结尾,单击按钮“Cod1”,在Text2中输出最小值所在序列中的位置,程序运行界面如图所示。
(1)在界面中,具有Caption属性的对象有33个。
(2)在横线处填入合适的代码。
①c=c*10+Val(ch)c=c*10+Val(ch)。
②a(n)=ca(n)=c。
③jye.ai2.jye.ai=Str(i+1)或jye.ai2.jye.ai=Str(j+1)或jye.ai2.jye.ai=Str(m+1)jye.ai2.jye.ai=Str(i+1)或jye.ai2.jye.ai=Str(j+1)或jye.ai2.jye.ai=Str(m+1)。
(3)加框处的表达式有误,请改正。
改正:i<ji<j
PrivateSubCod1_Click ( )
DimsAsString,chAsString
DimiAsInteger,jAsInteger,nAsInteger,cAsInteger
Dima(100)AsInteger
s=Text1.Text:c=0:n=0
Fori=1ToLen(s)
ch=Mid(s’i,1)
Ifch>=“0“Andch<=“9“Then
①
Else
n=n+1
②
c=0
EndIf
Nexti
i=1:j=n
DoWhile
m=(i+j)\2
Ifa(m)>a(i)Then
i=m
Else
j=m
EndIf
Loop
③
EndSub
【考点】查找算法及其程序实现.
【答案】3;c=c*10+Val(ch);a(n)=c;jye.ai2.jye.ai=Str(i+1)或jye.ai2.jye.ai=Str(j+1)或jye.ai2.jye.ai=Str(m+1);i<j
【解答】
【点评】
声明:本试题解析著作权属菁优网所有,未经书面同意,不得复制发布。
发布:2024/11/20 12:0:2组卷:0引用:1难度:0.3
相似题
-
1.某对分查找算法的VB程序段如下:
数组元素a(1)到a(10)的值依次为“12,15,18,20,25,39,47,88,90,99”,经过上述代码查找后,下列表达式正确的是( )发布:2024/12/20 16:0:2组卷:5引用:2难度:0.5 -
2.某数组d中的数据依次是[8,12,15,28,28,32,36,39],要查找某个元素是否在数组中,下列说法正确的是( )
发布:2024/12/20 0:0:1组卷:3引用:1难度:0.7 -
3.有如下对分查找VB程序段:
若数组元素a(1)~a(10)的值依次为“5,9,13,18,22,27,31,39,40,44”,运行程序后,文本
框Text2中显示的内容为3,则输入的key值不可能为( )发布:2024/12/20 20:0:2组卷:3引用:2难度:0.4