试卷征集
加入会员
操作视频

罗列对分查找中可能查到的中点。对分查找是我们常用的查找方式。在对分查找过程中,计算中点是非常重要的步骤。以下程序实现了“罗列对分查找中可能查到的中点”的功能。算法如下:用户在文本框Text1中输入模拟对分查找数据的个数n,单击“产生随机数并升序排列”按钮,在List1中显示n个不重复且已经升序排列的数(范围[1,100]),单击“可能查到的中点”,在list2中分行显示各个可能查到的中点
(1)实现上述功能的VB程序如下,请在横线处填入合适代码。

Private Sub Command1_Click (  )
Dim i As Integer
Randomize
For i=1 To 100
f(i)=False
Next i
n=Val(Text1.Text)
For i=1 To n
t=Int(Rnd*100+1)
Do While f(t)=True
t=Int(Rnd*100+1)
t=Int(Rnd*100+1)

Loop
f(t)=True
Next i
j=0
For i=1 To 100
If
f(i)=True
f(i)=True
 Then
j=j+1
a(j)=i
List1.AddItem Str(i)
End If
Next i
End Sub
Private Sub Command2_Click (  )
Dim b(1 To 100)As Integer,k As Integer,c As Integer,max As Integer
Dim s As String
Dim j As Integer
n=Val(Text1.Text)
max=0
For k=1 To n
i=1:j=n:c=0
Do While i<=j
m=(i+j)\2:c=c+1
If c>max Then max=c
If m=k Then b(m)=c:Exit Do
If m<k Then i=m+1 Else j=m-1
Loop
Next k
For i=1 To max
s=““
For j=1 To n
If
b(j)=i
b(j)=i
 Then
s=s+Str(a(j))
Else
s=s+““
End If
Next j
List2.AddItem s
Next i
End Sub
(2)当数据是11,22,33,44,55,66,77,88,99时,第3行第3个数为
66
66

【答案】t=Int(Rnd*100+1);f(i)=True;b(j)=i;66
【解答】
【点评】
声明:本试题解析著作权属菁优网所有,未经书面同意,不得复制发布。
发布:2024/6/27 10:35:59组卷:13引用:1难度:0.2
相似题
  • 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
深圳市菁优智慧教育股份有限公司
粤ICP备10006842号公网安备44030502001846号
©2010-2025 jyeoo.com 版权所有
APP开发者:深圳市菁优智慧教育股份有限公司| 应用名称:菁优网 | 应用版本:5.0.7 |隐私协议|第三方SDK|用户服务条款
广播电视节目制作经营许可证|出版物经营许可证|网站地图
本网部分资源来源于会员上传,除本网组织的资源外,版权归原作者所有,如有侵犯版权,请立刻和本网联系并提供证据,本网将在三个工作日内改正