VB实验四实验报告Word文档下载推荐.docx
- 文档编号:21305552
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:16
- 大小:228.75KB
VB实验四实验报告Word文档下载推荐.docx
《VB实验四实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《VB实验四实验报告Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
EndSub
Subf(mAsLong,nAsInteger)
DimiAsInteger
m=1
Fori=2Ton
m=m*i
Nexti
PrivateSubCommand3_Click()
End
【实验1典型结果】
【实验2】编写Function函数过程实现计算n!
掌握Function过程的定义及使用
【实验2代码】
s=f(n)
Functionf(nAsInteger)
DimiAsInteger
m=1
Fori=2Ton
m=m*i
Nexti
f=m
EndFunction
PrivateSubCommand2_Click()
【实验2典型结果】
【实验3】分别编写按地址传递交换、按值传递交换两个数的过程子程序代码swap1()和swap2()。
程序界面设计如下图所示。
(10分)
掌握Sub过程参数传递方法
【实验3代码】
SubSwap1(x%,y%)
t=x:
x=y:
y=t
SubSwap2(ByValx%,ByValy%)
Dima%,b%
a=10:
b=20
Print"
按地址交换前的各值为:
"
;
"
a="
a;
b="
b
Swap1a,b'
传址
按地址交换后的各值为:
按值交换前的各值为:
Swap2a,b'
传值
按值交换后的各值为:
【实验3典型结果】
【实验4】中国好声音歌手大赛共n名选手参加决赛,m位评委参加评分,评分标准:
去掉两个最高分和两个最低分以后取平均分。
编写程序实现如下要求:
①每位选手演唱完毕,当场显示参赛选手的编号及各位评委的评分和最后得分。
②决赛结束后,显示各参赛选手的名次、编号和成绩。
③用子程序sub过程实现。
掌握Sub过程中数组作为参数传递的方法
【实验4代码】
OptionBase1
Dimp()AsSingle,x()AsString,a()AsSingle
DimbAsSingle,mAsInteger,spAsString
n=Val(InputBox("
输入参加比赛歌手人数:
))
m=Val(InputBox("
输入评委人数:
ReDimp(m),x(n),a(n)
Fori=1Ton
x(i)=Val(InputBox("
输入选手编号:
sp="
Forj=1Tom
p(j)=Val(InputBox("
输入选手得分:
sp=sp&
p(j)&
Nextj
Label2.Caption="
&
x(i)
Label4.Caption="
sp
Callmean(p(),b,m)
a(i)=b
Label6.Caption="
a(i)
Fori=1Ton-1
k=i
Forj=i+1Ton
Ifa(k)<
a(j)Thenk=j
t=a(i):
a(i)=a(k):
a(k)=t
t=x(i):
x(i)=x(k):
x(k)=t
Picture1.Print"
名次编号成绩"
Picture1.PrintTab(3);
i,x(i),a(i)
PrivateSubmean(p()AsSingle,bAsSingle,mAsInteger)
Fori=1Tom-1
Forj=i+1Tom
Ifp(i)<
p(j)Then
t=p(i):
p(i)=p(j):
p(j)=t
EndIf
s=0
Fori=3Tom-2
s=s+p(i)
b=s/(m-4)
【实验4典型结果】
【实验5】编写一个Function函数过程,求出数组中的最大值。
已知数组中的数据为(101,52,38,96,182,100,25,78,66,89),程序界面设计如下图所示。
掌握Function过程中数组作为参数传递的方法
【实验5代码】
PrivateFunctionFindMax(a()AsInteger)
DimStartAsInteger,FinishAsInteger,iAsInteger
Start=LBound(a)
Finish=UBound(a)
Max=a(Start)
Fori=StartToFinish
Ifa(i)>
MaxThenMax=a(i)
FindMax=Max
Cls
Dimb(1To10)AsInteger
b
(1)=101:
b
(2)=52:
b(3)=38:
b(4)=96:
b(5)=82:
b(6)=100:
b(7)=25:
b(8)=78:
b(9)=66:
b(10)=89
数组中的数据为:
101,52,38,96,82,100,25,78,66,89"
c=FindMax(b())
Text1.Text=c
PrivateSubForm_Load()
【实验5典型结果】
【实验5问题】
通过和上一题对比,请总结一下哪些情况使用Function过程更加合适。
【实验6】编写计算n!
的函数过程,调用该过程,计算1!
+2!
+3!
+……+10!
之和(10分)
掌握使用Function过程简化多重循环的方法,即把具有单一功能的内循环放到函数内部
函数的作用是简化程序,不要把双重循环都放到函数内
【实验6代码】
PrivateSubForm_Click()
Fori=1To10
Callf(m,i)
s=s+m
s="
s
Functionf(m,nAsInteger)AsLong
【实验6典型结果】
【实验7】编写计算n!
的子过程,调用该过程,计算1!
掌握使用Sub过程简化多重循环的方法,即把具有单一功能的内循环放到函数内部
【实验7代码】
m=f(i)
Subf(nAsInteger)
f=m
【实验7典型结果】
【实验8】编写计算n!
的函数过程,调用该过程,计算ex的近似值(10分)
ex=1+x/1!
+x2/2!
+x3/3!
+……+xn/n!
要求:
1)x的值用InputBox函数输入
2)要求精度:
xn/n!
<
0.000001
掌握使用函数过程简化多重循环的方法
【实验8代码】
x=Val(InputBox("
请输入x的值"
f1=jishu1(x,0.000001)
Printf1
Functionjishu1(x,eps#)AsDouble
Dimn%,s#,t#
n=1:
s=0:
t=1
DoWhile(Abs(t)>
=eps)
s=s+t
t=t*x/n
n=n+1
Loop
jishu1=s
【实验8典型结果】
【实验9】编写程序输出200~300之间的素数。
1)利用函数过程判断每个数是否是素数,是素数则返回1,否则返回0
2)将素数输出到列表框
【实验9代码】
PrivateFunctiongdbh(nAsInteger)
gdbh=1
Fori=2ToInt(Sqr(n))
IfnModi=0Thengdbh=0
Fori=201To300Step2
y=gdbh(i)
Ify=0ThenList1.AddItemi
【实验9典型结果】
【实验10】编写程序验证100以内数的哥德巴赫猜想(任意一个大于6的偶数可以表示成两个素数之和),要求素数判断用函数过程实现。
【实验10代码】
Dimm,m1,m2,n,f,p
Form=6To100Step2
p="
m1=1
aa:
m1=m1+1
Callgdbh(m1,f)
Iff=1ThenGoToaa
m2=m-m1
Callgdbh(m2,f)
p=p&
m&
="
m1&
+"
m2
List1.AddItemp
Nextm
PrivateSubgdbh(n,f)
f=0
Ifn=2Thenf=0
Fori=2ToSqr(n)
IfnModi=0Thenf=1
【实验10典型结果】
【选做1】编写程序,利用Sub子程序递归调用方式计算两个数M、N的最大公约数,其中M>
N,且N≠0。
(+5分,总分最高100)
掌握Sub过程的递归调用
【选做1代码】
【选做1典型结果】
【选做2】编写程序,利用Function函数过程的递归调用方式计算n!
掌握Function过程的递归调用
【选做2代码】
【选做2典型结果】
【选做3】编写程序,利用Sub过程实现将任意一个十进制数n分别转换成2进制、8进制和16进制数。
在文本框中得到要转换的十进制数n,在事件过程中调用Sub过程得到转换后的3个结果,在窗体上打印出结果。
(+10分,总分最高100)
综合案例
【选做3代码】
【选做3典型结果】
实验小结
1.遇到的问题:
有些固定的格式没记住,编写的时候就有点困难,还有就是有些转换有点没搞懂
2.对课程的建议:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 实验 报告