程序界面如图所示,左边列表框Listl中显示的是部分职工的账号和余额,在文本框Textl中输入职工的公积金账号,单击“查询余额”按钮(Commandl)后,如果找到此账号,则在标签Label2中显示“此账号余额为”和账号对应的余额值,如果未找到则显示“找不到此账号,请重新输入”。
解决此问题的算法流程图如图所示,相应的查找部分程序段如下:
Dim a(1 To n)As Long
Dim b(1 To n)As Single
Private Sub Command l_Click()
【答案】
(1)对分查找 (2)m=Fix((i+j)/2) (3)i=m+1
【本题解析】
此题考查vb的综合应用。
(1)据题,据图都可以分析得此查找方法选取了数据中值,区分了数据上下区域等,所以可得此方法属于对分查找。
(2)据题分析可以明显得到此空应填数据范围的中值,而数据中值的公式为Fix((i+j)/2),所以由此可得答案应为m=Fix((i+j)/2) 。
(3)据题“ Elself x﹤a(m)Then
j=m-l
Else”分析可得此空应是x>a(m)的情况,那么可得下一次查找的范围应原范围 的下半部分,即[m+1,j],所以可得答案为i=m+1。