VB实验四 实验报告.docx

上传人:b****6 文档编号:16131403 上传时间:2023-07-10 格式:DOCX 页数:22 大小:249.16KB
下载 相关 举报
VB实验四 实验报告.docx_第1页
第1页 / 共22页
VB实验四 实验报告.docx_第2页
第2页 / 共22页
VB实验四 实验报告.docx_第3页
第3页 / 共22页
VB实验四 实验报告.docx_第4页
第4页 / 共22页
VB实验四 实验报告.docx_第5页
第5页 / 共22页
VB实验四 实验报告.docx_第6页
第6页 / 共22页
VB实验四 实验报告.docx_第7页
第7页 / 共22页
VB实验四 实验报告.docx_第8页
第8页 / 共22页
VB实验四 实验报告.docx_第9页
第9页 / 共22页
VB实验四 实验报告.docx_第10页
第10页 / 共22页
VB实验四 实验报告.docx_第11页
第11页 / 共22页
VB实验四 实验报告.docx_第12页
第12页 / 共22页
VB实验四 实验报告.docx_第13页
第13页 / 共22页
VB实验四 实验报告.docx_第14页
第14页 / 共22页
VB实验四 实验报告.docx_第15页
第15页 / 共22页
VB实验四 实验报告.docx_第16页
第16页 / 共22页
VB实验四 实验报告.docx_第17页
第17页 / 共22页
VB实验四 实验报告.docx_第18页
第18页 / 共22页
VB实验四 实验报告.docx_第19页
第19页 / 共22页
VB实验四 实验报告.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

VB实验四 实验报告.docx

《VB实验四 实验报告.docx》由会员分享,可在线阅读,更多相关《VB实验四 实验报告.docx(22页珍藏版)》请在冰点文库上搜索。

VB实验四 实验报告.docx

VB实验四实验报告

实验报告四

课程

VB程序设计

实验项目

VB过程与函数设计(6学时)

成绩

专业班级

石油工程2017

姓名

万佳宁

学号

201731011301

实验日期

6.6

实验目的

(1)掌握Function过程和Sub过程的定义与调用

(2)理解参数按址传递和按值传递的本质

(3)理解变量和过程的作用域

(4)能熟练运用Function过程和Sub过程解决实际问题、简化程序

实验内容

【实验1】编写Function函数程序实现计算n!

程序界面如下图所示。

(5分)

掌握函数过程的定义及使用

实验结果:

【实验1代码】

PrivateSubCommand1_Click()

n=Val(Text1.Text)

Text2.Text=jiecheng(n)

EndSub

PrivateFunctionjiecheng(a)

t=1

Fori=1Toa

t=t*i

Nexti

jiecheng=t

EndFunction

PrivateSubCommand2_Click()

End

EndSub

【实验1典型结果】

【实验2】编写Sub子函数过程实现计算n!

程序界面同上题。

(5分)

掌握Sub子过程的定义及使用

实验结果:

【实验2代码】

PrivateSubCommand1_Click()

n=Val(Text1.Text)

Calljiecheng(n,t)

Text2.Text=t

EndSub

Subjiecheng(a,t)

t=1

Forj=1Toa

t=t*j

Nextj

EndSub

PrivateSubCommand2_Click()

End

EndSub

【实验2典型结果】

【实验3】编写计算n!

的函数过程,调用该过程,计算1!

+2!

+3!

+……+10!

之和(5分)

掌握使用Function过程简化多重循环的方法,即把具有单一功能的内循环放到函数内部

函数的作用是简化程序,不要把双重循环都放到函数内,无法达到简化程序的目的

实验结果:

【实验3代码】

PrivateSubForm_Click()

n=Val(InputBox

(1))

Forj=1Ton

b=b+jiecheng(j)

Nextj

Printb

EndSub

Functionjiecheng(a)

t=1

Fori=1Toa

t=t*i

Nexti

jiecheng=t

EndFunction

【实验3典型结果】

【实验4】编写计算n!

的子过程,调用该过程,计算1!

+2!

+3!

+……+10!

之和(5分)

掌握使用Sub过程简化多重循环的方法,即把具有单一功能的内循环放到函数内部

函数的作用是简化程序,不要把双重循环都放到函数内,无法达到简化程序的目的

实验结果:

【实验4代码】

PrivateSubForm_Click()

n=Val(InputBox

(1))

Fori=1Ton

Calljiecheng(i,b)

c=c+b

Nexti

Printc

EndSub

Subjiecheng(a,b)

t=1

Forj=1Toa

t=t*j

Nextj

b=t

EndSub

【实验4典型结果】

【实验5】编写计算xn/n!

的函数过程,调用该过程,计算ex的近似值(10分)

ex=1+x/1!

+x2/2!

+x3/3!

+……+xn/n!

要求:

1)x的值用InputBox函数输入

2)要求精度:

xn/n!

<0.000001

掌握使用函数过程简化多重循环的方法

实验结果:

【实验5代码】

Functionjiecheng(a)

t=1

Fori=1Toa

t=t*i

Nexti

jiecheng=t

EndFunction

PrivateSubCommand1_Click()

DimbAsLong

x=Val(Text1.Text)

d=1

Do

i=i+1

b=jiecheng(i)

c=x^i

d=d+c/b

LoopUntilc/b<0.000001

Printd

EndSub

【实验5典型结果】

【实验6】编写程序输出200~300之间的素数。

(10分)

要求:

1)利用函数过程编写判断一个数是否是素数的程序,如果是素数则返回1,否则返回0

2)将素数输出到列表框

掌握使用函数过程简化多重循环的方法

实验结果:

【实验6代码】

PrivateSubCommand1_Click()

Forj=200To300

Ifsushu(j)=1ThenList1.AddItemj

Nextj

EndSub

Functionsushu(n)

Fori=2Ton-1

IfnModi=0ThenExitFor

Nexti

Ifi>n-1Then

flag=1

Else

flag=0

EndIf

sushu=flag

EndFunction

【实验6典型结果】

【实验7】编写程序验证100以内数的哥德巴赫猜想(任意一个大于6的偶数可以表示成两个素数之和),要求素数判断用函数过程实现。

(10分)

掌握使用函数过程简化多重循环的方法

实验结果:

【实验7代码】

PrivateSubCommand1_Click()

List2.Clear

List1.Clear

n=Val(Text1)

Fori=2Ton-2

Ifsushu(i)=1Andsushu(n-i)=1Then

List1.AddItemi

List2.AddItemn-i

EndIf

Nexti

EndSub

Functionsushu(a)

Forj=2Toa-1

IfaModj=0ThenExitFor

Nextj

Ifj>a-1Then

sushu=1

Else

sushu=0

EndIf

EndFunction

【实验7典型结果】

【实验8】编写一个通用的Function函数过程,求出数组中的最大值。

已知数组中的数据为(101,52,38,96,182,100,25,78,66,89),程序界面设计如下图所示。

(10分)

掌握Function过程中数组作为参数传递的方法

实验结果:

【实验8代码】

PrivateSubCommand1_Click()

Dimnum()

num=Array(101,52,38,96,182,100,25,78,66,89)

Text1=max(num())

EndSub

Functionmax(num())

t=num(0)

Fori=0ToUBound(num)-1

Ifnum(i)>tThent=num(i)

Nexti

max=t

EndFunction

【实验8典型结果】

【实验8问题】

请总结一下哪些情况使用Function过程更加合适、哪些情况使用sub过程更加合适。

需要返回值用function

不需要返回值时用sub更合适

【实验9】分别编写按地址传递交换、按值传递交换两个数的过程子程序代码swap1()和swap2()。

程序界面设计如下图所示。

(10分)

掌握Sub过程参数传递方法

实验结果:

【实验9代码】

PrivateSubCommand1_Click()

a=10:

b=20

huan1a,b

Print"按址传递前:

";"a=10";"b=20"

Print"按址传递后:

";"a=";a;"b=";b

EndSub

Subhuan1(a,b)

t=a

a=b

b=t

EndSub

PrivateSubCommand2_Click()

a=10:

b=20

huan2a,b

Print"按值传递前:

";"a=10";"b=20"

Print"按值传递后:

";"a=";a;"b=";b

EndSub

Subhuan2(ByVala,ByValb)

t=a

a=b

b=t

EndSub

【实验9典型结果】

【实验10】编写程序,利用sub过程,输出由字符组成的菱形,通过三次调用输出三个不同字符组成的菱形。

(10分)

灵活运用函数过程和子过程解决实际问题

实验结果:

【实验10代码】

Sublingxing(aAsString)

Fori=1To5

PrintTab(10-i);

Forj=1Toi*2-1

Printa;

Nextj

Print

Nexti

Fori=4To1Step-1

PrintTab(10-i);

Forj=1Toi*2-1

Printa;

Nextj

Print

Nexti

Print

EndSub

PrivateSubCommand1_Click()

lingxingyuansu

lingxingyuansu

lingxingyuansu

EndSub

Functionyuansu()AsString

yuansu=InputBox("字符")

EndFunction

【实验10典型结果】

【实验11】编写程序,利用Sub过程实现将任意一个十进制数n分别转换成2进制、8进制和16进制数。

要求:

在文本框中得到要转换的十进制数n,在事件过程中调用Sub过程得到转换后的3个结果,在窗体上打印出结果。

(10分)

综合案例

实验结果:

【实验11代码】

【实验11典型结果】

【实验12】编写程序,利用Function函数过程的递归调用方式计算n!

程序界面如下图所示。

(10分)

掌握Function过程的递归调用

实验结果:

【实验12代码】

PrivateSubCommand1_Click()

n=Val(Text1)

Text2=jiecheng(n)

EndSub

Functionjiecheng(a)

Ifa=1Then

jiecheng=1

Else

jiecheng=jiecheng(a-1)*a

EndIf

EndFunction

PrivateSubCommand2_Click()

End

EndSub

【实验12典型结果】

【选做1】编写程序,利用Sub子程序递归调用方式计算两个数M、N的最大公约数,其中M>N,且N≠0。

程序界面如下图所示。

(+10分,总分最高100)

掌握Sub过程的递归调用

实验结果:

【选做1代码】

PrivateSubCommand1_Click()

m=Text1

n=Text2

Text3=yue(m,n)

EndSub

Functionyue(a,b)

r=aModb

Ifr=0Then

yue=b

Else

yue=yue(b,r)

EndIf

EndFunction

PrivateSubCommand2_Click()

End

EndSub

【选做1典型结果】

【选做2】将超级玛丽的砖块、怪兽改为控件数组、将吃蘑菇功能、变大功能、变小功能封装成子过程,将前进、后退、发射子弹、跳的功能使用键盘事件完成。

实验结果:

【选做2代码】

【选做2典型结果】

实验小结

1.遇到的问题:

函数的定义有时候会出问题

2.对课程的建议:

习题课的时间可以近一点~

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

当前位置:首页 > 工程科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2