收藏 分享(赏)

VB实验四 实验报告 - 2018.doc

上传人:精品资料 文档编号:8111177 上传时间:2019-06-08 格式:DOC 页数:22 大小:337.50KB
下载 相关 举报
VB实验四 实验报告 - 2018.doc_第1页
第1页 / 共22页
VB实验四 实验报告 - 2018.doc_第2页
第2页 / 共22页
VB实验四 实验报告 - 2018.doc_第3页
第3页 / 共22页
VB实验四 实验报告 - 2018.doc_第4页
第4页 / 共22页
VB实验四 实验报告 - 2018.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、1实 验 报 告 四课 程 VB 程序设计 实验项目 VB 过程与函数设计(6 学时) 成 绩专业班级 石油工程 2017姓 名 万佳宁 学 号 201731011301 实验日期 6.6实验目的(1)掌握 Function 过程和 Sub 过程的定义与调用(2)理解参数按址传递和按值传递的本质(3)理解变量和过程的作用域(4)能熟练运用 Function 过程和 Sub 过程解决实际问题、简化程序实验内容【实验 1】 编写 Function 函数程序 实现计算 n!。程序界面如下图所示。 (5 分)掌握函数过程的定义及使用实验结果:【实验 1 代码】Private Sub Command1_

2、Click()n = Val(Text1.Text)Text2.Text = jiecheng(n)End SubPrivate Function jiecheng(a)t = 1For i = 1 To at = t * iNext i2jiecheng = tEnd FunctionPrivate Sub Command2_Click()EndEnd Sub【实验 1 典型结果】【实验 2】 编写 Sub 子函数过程实现计算 n!。程序界面同上题。 (5 分)掌握 Sub 子过程的定义及使用实验结果:【实验 2 代码】Private Sub Command1_Click()3n = Val

3、(Text1.Text)Call jiecheng(n, t)Text2.Text = tEnd SubSub jiecheng(a, t)t = 1For j = 1 To at = t * jNext jEnd SubPrivate Sub Command2_Click()EndEnd Sub【实验 2 典型结果】4【实验 3】 编写计算 n! 的函数过程,调用该过程,计算 1!+2!+3!+10!之和(5分)掌握使用 Function 过程简化多重循环的方法,即把具有单一功能的内循环放到函数内部函数的作用是简化程序,不要把双重循环都放到函数内,无法达到简化程序的目的实验结果:【实验 3

4、代码】Private Sub Form_Click()n = Val(InputBox(1)For j = 1 To nb = b + jiecheng(j)5Next jPrint bEnd SubFunction jiecheng(a)t = 1For i = 1 To at = t * iNext ijiecheng = tEnd Function【实验 3 典型结果】【实验 4】 编写计算 n! 的子过程,调用该过程,计算 1!+2!+3!+10!之和(5 分)掌握使用 Sub 过程简化多重循环的方法,即把具有单一功能的内循环放到函数内部6函数的作用是简化程序,不要把双重循环都放到函数

5、内,无法达到简化程序的目的实验结果:【实验 4 代码】Private Sub Form_Click()n = Val(InputBox(1)For i = 1 To nCall jiecheng(i, b)c = c + bNext iPrint cEnd SubSub jiecheng(a, b)t = 1For j = 1 To at = t * jNext jb = tEnd Sub【实验 4 典型结果】7【实验 5】 编写计算 xn/n! 的函数过程,调用该过程,计算 ex的近似值(10 分)ex=1+x/1! +x2/2!+x3/3!+ +xn/n!要求:1)x 的值用 InputB

6、ox 函数输入2)要求精度:x n/n! n - 1 Thenflag = 1Elseflag = 0End Ifsushu = flagEnd Function【实验 6 典型结果】11【实验 7】 编写程序验证 100 以内数的哥德巴赫猜想(任意一个大于 6 的偶数可以表示成两个素数之和) ,要求素数判断用函数过程实现。 (10 分)掌握使用函数过程简化多重循环的方法实验结果:【实验 7 代码】Private Sub Command1_Click()List2.ClearList1.Clearn = Val(Text1)For i = 2 To n - 2If sushu(i) = 1 A

7、nd sushu(n - i) = 1 ThenList1.AddItem iList2.AddItem n - iEnd IfNext iEnd SubFunction sushu(a)For j = 2 To a - 1If a Mod j = 0 Then Exit ForNext jIf j a - 1 Thensushu = 1Elsesushu = 0End IfEnd Function【实验 7 典型结果】12【实验 8】 编写一个通用的 Function 函数过程,求出数组中的最大值。已知数组中的数据为(101,52,38 ,96 ,182,100 ,25,78,66,89)

8、,程序界面设计如下图所示。 (10 分)掌握 Function 过程中数组作为参数传递的方法实验结果:【实验 8 代码】Private Sub Command1_Click()Dim num()num = Array(101, 52, 38, 96, 182, 100, 25, 78, 66, 89)13Text1 = max(num()End SubFunction max(num()t = num(0)For i = 0 To UBound(num) - 1If num(i) t Then t = num(i)Next imax = tEnd Function【实验 8 典型结果】【实验

9、8 问题】请总结一下哪些情况使用 Function 过程更加合适、哪些情况使用 sub 过程更加合适。需要返回值用 function不需要返回值时用 sub 更合适【实验 9】 分别编写按地址传递交换、按值传递交换两个数的过程子程序代码swap1()和 swap2() 。程序界面设计如下图所示。 (10 分)14掌握 Sub 过程参数传递方法实验结果:【实验 9 代码】Private Sub Command1_Click()a = 10: b = 20huan1 a, bPrint “按址传递前:“; “a=10“; “b=20“Print “按址传递后:“; “a=“; a; “b=“; b

10、End SubSub huan1(a, b)t = aa = bb = tEnd SubPrivate Sub Command2_Click()a = 10: b = 20huan2 a, bPrint “按值传递前:“; “a=10“; “b=20“Print “按值传递后:“; “a=“; a; “b=“; bEnd SubSub huan2(ByVal a, ByVal b)t = aa = bb = tEnd Sub15【实验 9 典型结果】【实验 10】 编写程序,利用 sub 过程,输出由字符组成的菱形,通过三次调用输出三个不同字符组成的菱形。 (10 分)灵活运用函数过程和子过程

11、解决实际问题16实验结果:【实验 10 代码】Sub lingxing(a As String)For i = 1 To 5Print Tab(10 - i);For j = 1 To i * 2 - 1Print a;Next jPrintNext iFor i = 4 To 1 Step -1Print Tab(10 - i);For j = 1 To i * 2 - 1Print a;Next jPrintNext iPrintEnd SubPrivate Sub Command1_Click()17lingxing yuansulingxing yuansulingxing yuans

12、uEnd SubFunction yuansu() As Stringyuansu = InputBox(“字符“)End Function【实验 10 典型结果】18【实验 11】 编写程序,利用 Sub 过程实现将任意一个十进制数 n 分别转换成 2 进制、8 进制和 16 进制数。要求:在文本框中得到要转换的十进制数 n,在事件过程中调用 Sub 过程得到转换后的3 个结果,在窗体上打印出结果。 (10 分)综合案例实验结果:【实验 11 代码】【实验 11 典型结果】【实验 12】 编写程序,利用 Function 函数过程的递归调用方式计算 n!。程序界面19如下图所示。 (10 分

13、)掌握 Function 过程的递归调用实验结果:【实验 12 代码】Private Sub Command1_Click()n = Val(Text1)Text2 = jiecheng(n)End SubFunction jiecheng(a)If a = 1 Thenjiecheng = 1Elsejiecheng = jiecheng(a - 1) * aEnd IfEnd FunctionPrivate Sub Command2_Click()EndEnd Sub【实验 12 典型结果】20【选做 1】编写程序,利用 Sub 子程序递归调用方式计算两个数 M、N 的最大公约数,其中 M

14、N,且 N0。程序界面如下图所示。 (+10 分,总分最高 100)掌握 Sub 过程的递归调用实验结果:【选做 1 代码】Private Sub Command1_Click()m = Text121n = Text2Text3 = yue(m, n)End SubFunction yue(a, b)r = a Mod bIf r = 0 Thenyue = bElseyue = yue(b, r)End IfEnd FunctionPrivate Sub Command2_Click()EndEnd Sub【选做 1 典型结果】22【选做 2】将超级玛丽的砖块、怪兽改为控件数组、将吃蘑菇功能、变大功能、变小功能封装成子过程,将前进、后退、发射子弹、跳的功能使用键盘事件完成。实验结果:【选做 2 代码】【选做 2 典型结果】实验小结1. 遇到的问题:函数的定义有时候会出问题2. 对课程的建议:习题课的时间可以近一点

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报