大学VB实1答案 (2)
- 格式:doc
- 大小:88.00 KB
- 文档页数:5
上海立信会计学院本科实验报告
班级:学号:姓名:指导教师:
系部:专业:实验时间:
实验4 循环结构
一、实验目的
1.掌握For语句的使用
2.掌握Do语句的各种形式的使用。
3.掌握如何控制循环条件,防止死循环或不循环。
二、实验要求
1.在C:\下建立子文件夹“VB实验4”,按照题目要求,在该文件夹下为各题保存相应的文件,如本实验中的第一题,需保存的文件有:工程文件(41.vbp)、窗体文件(41.frm) 及可执行文件(41.exe),本实验中的第二题,需保存的文件有:工程文件(42.vbp)、窗体文件(42.frm) 及可执行文件(42.exe),其余实验依此类推。
2.撰写实验过程中出现了哪些问题、错误,你是如何解决的,做一个小结。
三、实验内容:
1.编一程序利用单循环结构显示如图4-1所示的界面。要求:循环体内显示的内容用String
函数来实现,找出循环控制变量与String函数内字符个数的关系:即String(2*i-1,Trim(Str(i)))。窗体显示字体默认、大小为小四,通过单击窗体触发程序运行。
图4-1
Private Sub Form_Click()
For i = 1 To 9
Print Tab(15 - i); String(2 * i - 1, Trim(Str(i)))
Next i
End Sub
2.计算π的近似值,π的计算公式为:
)12()12()2(75653431222
222+⨯-⨯⋅⋅⋅⨯⨯⨯⨯⨯⨯⨯=n n n π,要求:单击按钮同时显示当n=10、100、1000时的结果,利用Format 函数保留5位小数。窗体中所有控件字体默认、大小为小四。效果如图4-2所示。
图4-2
Private Sub Command1_Click()
pi = 2
For i = 1 To 10
pi = pi * (2 * i) ^ 2 / ((2 * i - 1) * (2 * i + 1))
Next i
Print " n=10 ∏近似值="; Format(pi, "0.00000")
pi = 2
For i = 1 To 100
pi = pi * (2 * i) ^ 2 / ((2 * i - 1) * (2 * i + 1))
Next i
Print " n=100 ∏近似值="; Format(pi, "0.00000")
pi = 2
For i = 1 To 1000
pi = pi * (2 * i) ^ 2 / ((2 * i - 1) * (2 * i + 1))
Next i
Print " n=1000 ∏近似值="; Format(pi, "0.00000")
End Sub
3. 求Sn=a+aa+aaa+aaaa+…+aa …aaa(n 个a),其中a 是一个由随机数产生的1~9(包括1、
9)中的一个正整数,n 是一个由随机数产生的4~9(包括4、9)中的一个正整数,产生随机数需使用Randomize 语句。例如,当a=2,n=5时,Sn=2+22+222+2222+22222。要求:单击窗体时,在窗体上逐个显示S 的结果,效果如图4-3所示。所有控件字体默认、大小为小四,窗体宽度设置为9000Twip 。
图4-3
Private Sub Form_Click()
Randomize
a = Int(Rnd * 9 + 1)
n = Int(Rnd * 6 + 4)
Print "絞a="; Trim(Str(a)); "时,n="; Trim(Str(n)); "时,S=";
For i = 1 To n - 1
Print String(i, Trim(Str(a))) + "+";
Next i
Print String(n, Trim(Str(a)))
End Sub
4.编一程序,要求在程序启动时显示出所有的水仙花数。所谓水仙花数是指100~999之间
的一个3位正整数,其各位数字立方和等于该数字本身。例如153是水仙花数,因为153=13+53+33。窗体中字体默认、大小为小四。效果如图4-4所示。
图4-4
Private Sub Form_Load()
Dim x%, x1%, x2%, x3%
Show
Print Tab(2); "正整数100-999所有水仙花数为:"
For x = 100 To 999
x1 = x \ 100
x2 = (x Mod 100) \ 10
x3 = x - x1 * 100 - x2 * 10
If x = x1 ^ 3 + x2 ^ 3 + x3 ^ 3 Then
Print Tab(2); x1 & "^3" & " + " & x2 & "^3" & " + " & x3 & "^3" & " = "; x1 ^
3 & " + " & x2 ^ 3 & " + " & x3 ^ 3 & " ="; x
End If
Next x
End Sub
5.一个富翁试图与陌生人做一笔换钱生意,换钱规则为:陌生人每天给富翁10万元钱,
直到满一个月(30天);而富翁第一天给陌生人1分钱,第二天2分,第三天4分,……,富翁每天给陌生人的钱是前一天的两倍,直到满一个月。编一程序,计算第几天富翁付出钱的总数超过陌生人付出钱的总数,并显示第30天时他们分别付给对方的金额总数以及富翁将多付出的金额数?要求:程序运行时立即显示结果,窗体中字体默认、大小为小四,效果如图4-5所示。
图4-5
Private Sub Form_Load()
Dim mf&, m#, i%, fm#
Show
mf = 0: fm = 0: m = 0.005: i = 0
Do While fm <= mf
mf = mf + 100000
m = m * 2
fm = fm + m
i = i + 1
Loop
Print " 第"; i; "天富翁的付钱总数超过陌生人的付钱总数"
Print " 富翁付给陌生人钱的总数为:"; Format(fm, "0.00"); "元"
Print " 陌生人付给富翁钱的总数为:"; Format(mf, "0.00"); "元"
mf = 0: fm = 0: m = 0.005
For i = 1 To 30
mf = mf + 100000