VB实验任务9答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验任务九参考答案
课程名称:程序设计基础VB
实验名称——八、循环结构程序设计(2)
一、实验目的:
1.进一步掌握循环语句的基本结构
2.清楚循环流程,掌握循环语句的描述
4.掌握多重循环结构程序的设计方法
二、实验内容(包括实验要求(题目)、实验步骤、程序清单、运行情况):
程序完善题的做题技巧和方法
建议,先根据程序运行的参考界面和题目要求,分析代码中变量和对象各自的作用(一般从输入或输出方面着手推导和分析),然后填充程序[希望同学们通过实践掌握]
实验1 阅读程序,人工列表写出下列循环的运行次数和执行结果(注意输出格式),并上机验证结果,并充分使用单步
实验2实验书103页实验5-11 改错题。窗体如图所示。要求程序运行时,在文本框text1中输入一个姓氏,单击“删除”按钮(名称为Command1),则可删除列表框List1中所有该姓氏的项目。编程以下程序实现此功能。 在调试时发现,如输入“陈”,可以正确删除所有“陈”的项目,但输入“刘”,但输入“刘”,则只删除了“刘邦”,如图b 所示,这说明程序不能适应所有情况,需要修改。
Private Sub Command1_Click() Dim n%, k%
n = Len(Text1.Text)
For k = List1.ListCount - 1 To 0 Step -1
If Left(List1.List(k), n) = Text1.Text Then List1.RemoveItem k End If Next k End Sub
实验3 实验书实验6-5 编程实现求Armstrong 数,Armstrong 数具有如下特征:一个n 位数等于其各位数的n 次方之和。例如,153=13+53+33
1634=14+64+34+44
提示:把数值转换成字符串后,利用Mid 函数取每一位上的数。
法一:
Private Sub Command1_Click()
Dim i As Integer, a As Integer, j%, b As Integer, k%, c%, h As Long, d As Long For i = 10 To 99
a = Val(Left(a, 1)) ^ 2 + Val(Right(a, 1)) ^ 2 If a = i Then Print i Next i
For j = 100 To 999
b = Val(Left(j, 1)) ^ 3 + Val(Mid(j, 2, 1)) ^ 3 + Val(Right(j, 1)) ^ 3 If b = j Then Print b Next j
For k = 1000 To 9999
c = Val(Left(k, 1)) ^ 4 + Val(Mid(k, 2, 1)) ^ 4 + Val(Mid(k, 3, 1)) ^ 4 + Val(Right(k, 1)) ^ 4
If k = c Then Print c
法二:
Dim n%, k%
n = Len(Text1.Text)
For k = 0 To List1.ListCount - 1
If Left(List1.List(k), n) = Text1.Text Then List1.RemoveItem k k = k - 1 End If Next k
For h = 10000 To 99999
d = Val(Left(h, 1)) ^ 5 + Val(Mid(h, 2, 1)) ^ 5 + Val(Mid(h, 3, 1)) ^ 5 + Val(Mid(h, 4, 1))
^ 5 + Val(Right(h, 1)) ^ 5
If d = h Then Print d
Next h
End Sub
法二:
Private Sub Command2_Click()
Dim i&, n%, s&, m%
For i = 1 To 99999
n = Len(CStr(i))
s = 0
For j = 1 To n
s = s + Mid(CStr(i), j, 1) ^ n
Next j
If s = i Then Print i
Next i
End Sub
法三:
Private Sub Command3_Click()
Dim i As Long, a As Long, b As Integer, c As Integer, d As Integer, e As Integer, f As Integer For i = 1 To 99999
a = i \ 10000
b = (i - 10000 * a) \ 1000
c = (i - 10000 * a - 1000 * b) \ 100
d = (i - 10000 * a - 1000 * b - 100 * c) \ 10
e = i - 10000 * a - 1000 * b - 100 * c - 10 * d
n = Len(CStr(i))
If i = a ^ n + b ^ n + c ^ n + d ^ n + e ^ n Then
Print i
End If
Next i
End Sub
实验4 实验书105页实验5-15在界面上放三个按钮,分别打出下面三幅图。
数字三角形字母倒三角图形数字菱形图形
Private Sub Command1_Click()
Cls
For i = 1 To 9
Print Spc(9 - i);
For j = 1 To 2 * i - 1
Print CStr(i);
Next j
Next i