大学VB实1答案 (2)

  • 格式:doc
  • 大小:88.00 KB
  • 文档页数:5

下载文档原格式

  / 5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上海立信会计学院本科实验报告

班级:学号:姓名:指导教师:

系部:专业:实验时间:

实验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

Print

Print

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"); "元"

Print

mf = 0: fm = 0: m = 0.005

For i = 1 To 30

mf = mf + 100000