下列VB程序实现如下功能:程序运行时,在文本框Text1和Text2中分别输入x和n的值,单击命令按钮Command1后,调用函数f计算s=x+++…+的值,并在文本框Text3中显示计算结果。请在划线上填入合适的代码。
Private Sub Command1_Click( )
Dim x As Single,n As Integer,s As __①__
x=Val(Text1.Text)
n=Val(Text2.Text)
s=f(x,n)
Text3.Text=str(s)
End Sub
Private Function f(x As Single,n As Integer) As Single
Dim sum As Single,i As Integer,t As Single
sum = 0
t=1
For i=1 To n
t=t*x/i
sum=sum+t
Next i
____②____
End Function
填写划线①处代码_____________________________________。
填写划线②处代码______________________________________。
Private Sub Command1_Click( )
Dim x As Single,n As Integer,s As __①__
x=Val(Text1.Text)
n=Val(Text2.Text)
s=f(x,n)
Text3.Text=str(s)
End Sub
Private Function f(x As Single,n As Integer) As Single
Dim sum As Single,i As Integer,t As Single
sum = 0
t=1
For i=1 To n
t=t*x/i
sum=sum+t
Next i
____②____
End Function
填写划线①处代码_____________________________________。
填写划线②处代码______________________________________。
更新时间:2017-07-14 15:27:42
|
【知识点】 VB程序的调试
相似题推荐
操作题
|
适中
(0.65)
【推荐1】在平面坐标系中,给定任意个点,求出这些点中与点(1,1)距离最远的点。小李编写出了相应功能的程序:在文本框Text1中输入这些点的坐标值(数据都用逗号分隔并以逗号结尾),单击“计算”按钮Cmd后,程序计算这些点到(1,1)的距离后,结果显示在列表框List1中,并且输出最大距离的点。程序运行界面如图所示。
![](https://img.xkw.com/dksih/QBM/2020/12/17/2616235220377600/2617320393383936/STEM/fbfede50b97c464eb0e48e1b39aded05.png?resizew=458)
(1)由图可知,窗体中的对象共有_________ 类;
(2)实现上述功能的VB程序如下,请在画线处填入合适的代码。
①____________________
②____________________
![](https://img.xkw.com/dksih/QBM/2020/12/17/2616235220377600/2617320393383936/STEM/88ccaba87cda494fae6d4e4979824f1c.png?resizew=478)
(3)若文本框Text1中输入的内容为“31,41,26,51,1,56,”,程序运行结束后,距离(1,1)最远的坐标点是________ 。
![](https://img.xkw.com/dksih/QBM/2020/12/17/2616235220377600/2617320393383936/STEM/fbfede50b97c464eb0e48e1b39aded05.png?resizew=458)
(1)由图可知,窗体中的对象共有
(2)实现上述功能的VB程序如下,请在画线处填入合适的代码。
①
②
![](https://img.xkw.com/dksih/QBM/2020/12/17/2616235220377600/2617320393383936/STEM/88ccaba87cda494fae6d4e4979824f1c.png?resizew=478)
(3)若文本框Text1中输入的内容为“31,41,26,51,1,56,”,程序运行结束后,距离(1,1)最远的坐标点是
您最近一年使用:0次
操作题
|
适中
(0.65)
【推荐2】人们常使用计算机程序解决一些实际问题。下面程序可以找出能被2、3、5除,余数为1的最小的4个正整数。(注:VB中不区分大小写)请分析程序回答问题。
Private Sub Command1_Click( 1 )
1. 利用计算机编程解决问题的过程中,需要使用一种程序设计语言来实现算法,这个过程叫做( )
A. 设计程序 B. 测试程序 C. 运行程序 D. 编写程序
2. VB中保存工程文件的文件扩展名为( )
A. .mdb B. .frm C. .vbp D. .fla
3. 程序中的If语句一般在流程图中用( )表示
A. 平行四边形 B. 菱形 C. 矩形 D. 正方形
4. 变量CountN的数据类型定义为( )
A. Integer B. Single C. Double D. String
5. 变量CountN的作用是( )
A. 求和 B. 求平均值 C. 求最大值 D. 计数
6. 所用到的表示循环的标志性语句是( )
A. Dim……End If B. Do…Loop C. Dim……Loop D. Do……End If
7. 在这个循环中,CountN=CountN+1语句被执行( )
A. 1次 B. 2次 C. 3次 D. 4次
8. ①处的语句应该是( )
A. Until CountN =2 B. Until CountN =4
C. Until Countn =2 D. Until Countn =4
9. 这段程序的输出结果是( )
A. 31 B. 33 C. 35 D. 37
10. VB语言中,下列合法的变量名是( )
A. 12ab B. ab12 C. *abcd D. c\c
11. 下列控件中可用于接收用户输入文本,又可用于显示文本的是( )
A. Label控件 B. TextBox控件 C. CommandButton控件 D. Timer控件
12. VB中,下列哪一函数作用是将数值转化成字符串( )
A. Val( ) B. Asc( ) C. Abs( ) D. Str( )
13. 下列( )算法就是一种直接或者间接地调用自身的算法
A. 穷举算法 B. 排序算法 C. 递归算法 D. 解析算法
14. 程序中Command1控件响应的事件是( )
A. 单击事件 B. 双击事件 C. 载入事件 D. 活动事件
15. 在VB中,“20”+“ 19”的运算结果是( )
A. “39” B. False C. “20+19” D. “2019”
Private Sub Command1_Click( 1 )
Dim CountN%, n%
CountN=0
n=1
Do
n=n+1
If n Mod 2=1 And n Mod 3=1 And n Mod 5=1 Then
Print n
CountN=CountN+1
End If
Loop______①______
End Sub1. 利用计算机编程解决问题的过程中,需要使用一种程序设计语言来实现算法,这个过程叫做( )
A. 设计程序 B. 测试程序 C. 运行程序 D. 编写程序
2. VB中保存工程文件的文件扩展名为( )
A. .mdb B. .frm C. .vbp D. .fla
3. 程序中的If语句一般在流程图中用( )表示
A. 平行四边形 B. 菱形 C. 矩形 D. 正方形
4. 变量CountN的数据类型定义为( )
A. Integer B. Single C. Double D. String
5. 变量CountN的作用是( )
A. 求和 B. 求平均值 C. 求最大值 D. 计数
6. 所用到的表示循环的标志性语句是( )
A. Dim……End If B. Do…Loop C. Dim……Loop D. Do……End If
7. 在这个循环中,CountN=CountN+1语句被执行( )
A. 1次 B. 2次 C. 3次 D. 4次
8. ①处的语句应该是( )
A. Until CountN =2 B. Until CountN =4
C. Until Countn =2 D. Until Countn =4
9. 这段程序的输出结果是( )
A. 31 B. 33 C. 35 D. 37
10. VB语言中,下列合法的变量名是( )
A. 12ab B. ab12 C. *abcd D. c\c
11. 下列控件中可用于接收用户输入文本,又可用于显示文本的是( )
A. Label控件 B. TextBox控件 C. CommandButton控件 D. Timer控件
12. VB中,下列哪一函数作用是将数值转化成字符串( )
A. Val( ) B. Asc( ) C. Abs( ) D. Str( )
13. 下列( )算法就是一种直接或者间接地调用自身的算法
A. 穷举算法 B. 排序算法 C. 递归算法 D. 解析算法
14. 程序中Command1控件响应的事件是( )
A. 单击事件 B. 双击事件 C. 载入事件 D. 活动事件
15. 在VB中,“20”+“ 19”的运算结果是( )
A. “39” B. False C. “20+19” D. “2019”
您最近一年使用:0次
操作题
|
适中
(0.65)
【推荐3】小朋友拍照:有来自K(1<=K<=20)个不同国家的N(1<=N<=100)个小朋友排成一行准备拍照。国籍用数字1,2,3……K表示,每个小朋友的国籍依次存入数组a(1)到a(N)。由于小朋友太多,没有办法全部被拍入。摄像师决定拍摄一段连续区间内的小朋友,这个区间内每种国籍的小朋友至少要有1个,求满足要求的最小区间长度。
例如有10个小朋友,5种国籍,从左到右排列,国籍编号依次是2,1,2,4,3,3,5,5,3,5,则最小的一段包含所有5种国籍的区间是从第2个到第7个小朋友,区间长度为6。
算法解析:区间的长度至少为K(国籍的数量),最大为N(小朋友的数量)。我们可以通过二分K到N之间的求得最小区间长度。
实现上述功能的VB代码如下,但加框处代码有错,请改正。
Dim a(1 To 100) As Integer '依次存储为1到100的小朋友的国籍编号
Dim K As Integer
Dim N As Integer
Private Sub Form_Load() '窗体加载,生成数据
'产生N的值,表示人数
'产生K的值,表示国籍种数
'产生编号为1到N的小朋友的国籍编号,并存储在数组a中
'代码略
End Sub
Private Sub Command1_Click() '使用二分的思想计算最小区间
Dim M As Integer
i =" K:" j = N '答案的范围为K到N,即最少K,最多N个小朋友
Do While i <= j
M =" (i" + j) \ 2 '二分,求中间值
If pd(M) =" True" Then '调用Pd函数,判断区间长度为M时,是否包含所有国籍
j =" M" – 1
ans = M '若以M为区间长度可包含所有国籍,更新答案
Else
i =
'第①处错误
End If
Loop
Text1.Text = Str(ans)
End Sub
Function pd(M As Integer) As Boolean
Dim f(1 To 20) As Integer 'f(i)表示国籍为i的小朋友是否包含
Dim t As Integer 't用于统计当前区间包含的国籍数量
pd = False
For i =" 1" To N - M + 1 '枚举以i为起点的M个小朋友中,各个国籍是否包含
For j =" i" To i + M - 1
f(a(j)) = 1 '等于1,表示国籍为a(j)的小朋友已包含,0表示不包含
Next j
t = 0
For j =" 1" To K '统计已包含的国籍的数量
t =
'第②处错误
Next j
If t =" K" Then pd =" True:" Exit Function '若包含K个国籍,返回True
For j =" 1" To K 'f数组元素重新初始化为0
f(j) = 0
Next j
Next i
End Function
例如有10个小朋友,5种国籍,从左到右排列,国籍编号依次是2,1,2,4,3,3,5,5,3,5,则最小的一段包含所有5种国籍的区间是从第2个到第7个小朋友,区间长度为6。
算法解析:区间的长度至少为K(国籍的数量),最大为N(小朋友的数量)。我们可以通过二分K到N之间的求得最小区间长度。
实现上述功能的VB代码如下,但加框处代码有错,请改正。
Dim a(1 To 100) As Integer '依次存储为1到100的小朋友的国籍编号
Dim K As Integer
Dim N As Integer
Private Sub Form_Load() '窗体加载,生成数据
'产生N的值,表示人数
'产生K的值,表示国籍种数
'产生编号为1到N的小朋友的国籍编号,并存储在数组a中
'代码略
End Sub
Private Sub Command1_Click() '使用二分的思想计算最小区间
Dim M As Integer
i =" K:" j = N '答案的范围为K到N,即最少K,最多N个小朋友
Do While i <= j
M =" (i" + j) \ 2 '二分,求中间值
If pd(M) =" True" Then '调用Pd函数,判断区间长度为M时,是否包含所有国籍
j =" M" – 1
ans = M '若以M为区间长度可包含所有国籍,更新答案
Else
i =
![](https://img.xkw.com/dksih/QBM/2017/3/7/1730005235630080/1730005235867648/STEM/adaae5db11a247d1825ea034d6bf5a46.png)
End If
Loop
Text1.Text = Str(ans)
End Sub
Function pd(M As Integer) As Boolean
Dim f(1 To 20) As Integer 'f(i)表示国籍为i的小朋友是否包含
Dim t As Integer 't用于统计当前区间包含的国籍数量
pd = False
For i =" 1" To N - M + 1 '枚举以i为起点的M个小朋友中,各个国籍是否包含
For j =" i" To i + M - 1
f(a(j)) = 1 '等于1,表示国籍为a(j)的小朋友已包含,0表示不包含
Next j
t = 0
For j =" 1" To K '统计已包含的国籍的数量
t =
![](https://img.xkw.com/dksih/QBM/2017/3/7/1730005235630080/1730005235867648/STEM/1831445b3f59466794c1368ce185cb8f.png)
Next j
If t =" K" Then pd =" True:" Exit Function '若包含K个国籍,返回True
For j =" 1" To K 'f数组元素重新初始化为0
f(j) = 0
Next j
Next i
End Function
您最近一年使用:0次