VB实验四 实验报告 - 2016_第1页
VB实验四 实验报告 - 2016_第2页
VB实验四 实验报告 - 2016_第3页
VB实验四 实验报告 - 2016_第4页
VB实验四 实验报告 - 2016_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实 验 报 告 四课 程VB程序设计实验项目VB过程与函数设计(6学时)成 绩专业班级姓 名学 号实验日期实验目的(1)掌握Function过程和Sub过程的定义与调用(2)理解参数按址传递和按值传递的本质(3)理解变量和过程的作用域(4)能熟练运用Function过程和Sub过程解决实际问题、简化程序实验内容【实验1】编写Sub子程序实现计算n!。程序界面如下图所示。(5分)掌握Sub过程的定义及使用实验结果:【实验1 代码】Dim n As Integer, s As LongPrivate Sub Command1_Click()n = Val(Text1.Text)Call f(s,

2、n)Text2.Text = sEnd SubSub f(m As Long, n As Integer) Dim i As Integer m = 1 For i = 2 To n m = m * i Next iEnd SubPrivate Sub Command3_Click()EndEnd Sub【实验1 典型结果】【实验2】编写Function函数过程实现计算n!。程序界面如下图所示。(5分)掌握Function过程的定义及使用实验结果:【实验2 代码】Dim n As Integer, s As LongPrivate Sub Command1_Click()n = Val(Tex

3、t1.Text)s = f(n)Text2.Text = sEnd SubFunction f(n As Integer)Dim i As Integerm = 1For i = 2 To nm = m * iNext if = mEnd FunctionPrivate Sub Command2_Click()EndEnd Sub【实验2 典型结果】【实验3】分别编写按地址传递交换、按值传递交换两个数的过程子程序代码swap1()和swap2()。程序界面设计如下图所示。(10分)掌握Sub过程参数传递方法实验结果:【实验3 代码】Sub Swap1(x%, y%) t = x: x = y:

4、 y = tEnd SubSub Swap2(ByVal x%, ByVal y%) t = x: x = y: y = tEnd SubPrivate Sub Command1_Click() Dim a%, b% a = 10: b = 20 Print 按地址交换前的各值为:; a=; a; b=; b Swap1 a, b 传址 Print 按地址交换后的各值为:; a=; a; b=; bEnd SubPrivate Sub Command2_Click() Dim a%, b% a = 10: b = 20 Print 按值交换前的各值为:; a=; a; b=; b Swap2

5、a, b 传值 Print 按值交换后的各值为:; a=; a; b=; bEnd Sub【实验3 典型结果】【实验4】中国好声音歌手大赛共n名选手参加决赛,m位评委参加评分,评分标准:去掉两个最高分和两个最低分以后取平均分。编写程序实现如下要求:(10分) 每位选手演唱完毕,当场显示参赛选手的编号及各位评委的评分和最后得分。 决赛结束后,显示各参赛选手的名次、编号和成绩。 用子程序sub过程实现。程序界面设计如下图所示。掌握Sub过程中数组作为参数传递的方法实验结果:【实验4 代码】Option Base 1Dim p() As Single, x() As String, a() As S

6、inglePrivate Sub Command1_Click() Dim b As Single, m As Integer, sp As String n = Val(InputBox(输入参加比赛歌手人数:) m = Val(InputBox(输入评委人数:) ReDim p(m), x(n), a(n) For i = 1 To n x(i) = Val(InputBox(输入选手编号:) sp = For j = 1 To m p(j) = Val(InputBox(输入选手得分:) sp = sp & p(j) & Next j Label2.Caption = & x(i) La

7、bel4.Caption = & sp Call mean(p(), b, m) a(i) = b Label6.Caption = & a(i) Next i For i = 1 To n - 1 k = i For j = i + 1 To n If a(k) a(j) Then k = j Next j t = a(i): a(i) = a(k): a(k) = t t = x(i): x(i) = x(k): x(k) = t Next i Picture1.Print 名次 编号 成绩 For i = 1 To n Picture1.Print Tab(3); i, x(i), a(

8、i) Next i End SubPrivate Sub mean(p() As Single, b As Single, m As Integer) For i = 1 To m - 1 For j = i + 1 To m If p(i) Max Then Max = a(i) Next i FindMax = MaxEnd FunctionPrivate Sub Command1_Click() Cls Dim b(1 To 10) As Integer b(1) = 101: b(2) = 52: b(3) = 38: b(4) = 96: b(5) = 82: b(6) = 100:

9、 b(7) = 25: b(8) = 78: b(9) = 66: b(10) = 89 Print 数组中的数据为:101, 52, 38, 96, 82, 100, 25, 78, 66, 89 c = FindMax(b() Text1.Text = cEnd SubPrivate Sub Form_Load()End Sub【实验5 典型结果】【实验5 问题】通过和上一题对比,请总结一下哪些情况使用Function过程更加合适。【实验6】编写计算 n! 的函数过程,调用该过程,计算1!+2!+3!+10!之和(10分)掌握使用Function过程简化多重循环的方法,即把具有单一功能的内

10、循环放到函数内部函数的作用是简化程序,不要把双重循环都放到函数内实验结果:【实验6 代码】Private Sub Form_Click() Dim i As Integer For i = 1 To 10 Call f(m, i) s = s + m Next i Print s=, sEnd SubFunction f(m, n As Integer) As Long Dim i As Integer m = 1 For i = 2 To n m = m * i Next i End Function【实验6 典型结果】【实验7】编写计算 n! 的子过程,调用该过程,计算1!+2!+3!+1

11、0!之和(10分)掌握使用Sub过程简化多重循环的方法,即把具有单一功能的内循环放到函数内部函数的作用是简化程序,不要把双重循环都放到函数内实验结果:【实验7 代码】Private Sub Form_Click() Dim i As Integer For i = 1 To 10 m = f(i) s = s + m Next i Print s=, sEnd SubSub f(n As Integer) Dim i As Integer m = 1 For i = 2 To n m = m * i Next i f = mEnd Sub【实验7 典型结果】【实验8】编写计算 n! 的函数过程

12、,调用该过程,计算ex的近似值(10分)ex=1+x/1! +x2/2!+x3/3!+ +xn/n!要求:1)x的值用InputBox函数输入 2)要求精度:xn/n!= eps) s = s + t t = t * x / n n = n + 1 Loop jishu1 = sEnd Function【实验8 典型结果】【实验9】编写程序输出200300之间的素数。(10分)要求:1)利用函数过程判断每个数是否是素数,是素数则返回1,否则返回0 2)将素数输出到列表框掌握使用函数过程简化多重循环的方法实验结果:【实验9 代码】Private Function gdbh(n As Intege

13、r) gdbh = 1 For i = 2 To Int(Sqr(n) If n Mod i = 0 Then gdbh = 0 Next iEnd FunctionPrivate Sub Command1_Click() Dim i As Integer For i = 201 To 300 Step 2 y = gdbh(i) If y = 0 Then List1.AddItem i Next i End Sub【实验9 典型结果】【实验10】编写程序验证100以内数的哥德巴赫猜想(任意一个大于6的偶数可以表示成两个素数之和),要求素数判断用函数过程实现。(10分)掌握使用函数过程简化多

14、重循环的方法实验结果:【实验10 代码】Private Sub Command1_Click() Dim m, m1, m2, n, f, p For m = 6 To 100 Step 2 p = m1 = 1aa: m1 = m1 + 1 Call gdbh(m1, f) If f = 1 Then GoTo aa m2 = m - m1 Call gdbh(m2, f) If f = 1 Then GoTo aa p = p & m & = & m1 & + & m2 List1.AddItem p Next mEnd SubPrivate Sub gdbh(n, f) f = 0 If n = 2 Then f = 0 For i = 2 To Sqr(n) If n Mod i = 0 Then f = 1 Next iEnd SubPrivate Sub Form_Load()End Sub【实验10 典型结果】【选做1】编写程序,利用Sub子程序递归调用方式计算两个数M、N的最大公约数,其中MN,且N0。程序界面如下图所示。(+5分,总分最高100)掌握Sub过程的递归调用实验结果:【选做1 代码】【选做1 典型结果】【选做2】编写程序,利用Function函数过程的递归调用方式计算n!。程序界面如下图所示。(+5分,总分最高100)掌握Funct

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论