VB程序设计 习题及答案第7章 过程.docx

上传人:b****3 文档编号:2066370 上传时间:2022-10-26 格式:DOCX 页数:17 大小:315.71KB
下载 相关 举报
VB程序设计 习题及答案第7章 过程.docx_第1页
第1页 / 共17页
VB程序设计 习题及答案第7章 过程.docx_第2页
第2页 / 共17页
VB程序设计 习题及答案第7章 过程.docx_第3页
第3页 / 共17页
VB程序设计 习题及答案第7章 过程.docx_第4页
第4页 / 共17页
VB程序设计 习题及答案第7章 过程.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

VB程序设计 习题及答案第7章 过程.docx

《VB程序设计 习题及答案第7章 过程.docx》由会员分享,可在线阅读,更多相关《VB程序设计 习题及答案第7章 过程.docx(17页珍藏版)》请在冰豆网上搜索。

VB程序设计 习题及答案第7章 过程.docx

VB程序设计习题及答案第7章过程

第7章过程

 

7.1编写程序,利用Sub过程计算下式的值:

s=a!

+b!

+c!

a,b,c的值由键盘输入

【参考答案】

程序代码设计

PrivateSubForm_Click()

DimsAsInteger,nAsInteger

Fori=1To3

n=InputBox("n=")

Callfact(n,f)

s=s+f

Nexti

Print"s=";s

EndSub

 

PrivateSubfact(n,f)

f=1

Fori=1Ton

f=f*i

Nexti

EndSub

运行结果:

如a、b、c的值分别输入为4、5、6

则程序运行结果如图7-1所示:

 

7.2编写程序,打印100~200之间的所有素数。

要求:

(1)每行输出5个素数。

(2)利用Function过程判断每个数是否为素数,是返回1,否则返回0。

【参考答案】

程序代码设计

PrivateSubForm_Click()

Print2;

k=1

Fori=3To100

f=prime(i)

Iff=1Then

k=k+1

IfkMod5=0ThenPrintiElsePrinti;

EndIf

Nexti

EndSub

 

PrivateFunctionprime(n)

prime=1

Fori=2Ton-1

IfnModi=0Thenprime=0:

ExitFor

Nexti

EndFunction

程序运行结果如图7-2所示:

 

7.3编写程序,利用Function过程计算下式的值:

(1+2+3+…+m)+(1+2+3+…+n)

y=───────────────

(1+2+3+…+p)

【参考答案】

程序代码设计

PrivateSubForm_Click()

m=Val(InputBox("输入m:

"))

n=Val(InputBox("输入n:

"))

p=Val(InputBox("输入p:

"))

y=(sum(m)+sum(n))/sum(p)

Print"sum=";y

EndSub

 

PrivateFunctionsum(n)

s=0

Fori=1Ton

s=s+i

Nexti

sum=s

EndFunction

运行结果:

如输入m值为:

20,n值为:

15,p值为:

10

则程序运行结果如图7-3所示:

 

7.4编写Function过程计算n!

调用该函数过程计算下式的值:

S=1+1/(1+4!

)+1/(1+4!

+7!

)+…+1/(1+4!

+…+19!

【参考答案】

程序代码设计

PrivateSubForm_Click()

s=0

t=0

Fori=1To19Step3

t=t+fact(i)

s=s+1/t

Nexti

Print"s=";s

EndSub

 

PrivateFunctionfact(n)

f=1

Fori=1Ton

f=f*i

Nexti

fact=f

EndFunction

程序运行结果如图7-4所示。

 

 

xx2x3xn

7-5计算ex=1+─+─+─+…+─

1!

2!

3!

n!

xn

设x=1,2,3,4,5,6时,分别打印ex的值,要求精度─<0.0001

n!

用Function过程计算n!

调用该过程,计算上式的值。

【参考答案】

程序代码设计

PrivateSubForm_Click()

Forx=1To6

Sum=1

t=1

n=0

Do

n=n+1

t=t*x

term=t/fact(n)

Sum=Sum+term

LoopUntilterm<0.0001

Print"e^";x;"=";Sum

Nextx

EndSub

 

PrivateFunctionfact(n)

f=1

Fori=1Ton

f=f*i

Nexti

fact=f

EndFunction

程序运行结果如图7-5所示:

 

7.6编写两个Function过程,分别计算40,16,34,26,52的最大公约数和最小公倍数。

【参考答案】

程序代码设计

PrivateSubForm_Click()

Dima(1To5)AsInteger

a

(1)=40

a

(2)=16

a(3)=34

a(4)=26

a(5)=52

a1=a

(1)

a2=a

(2)

b=gcd(a1,a2)

d=b

c=a

(1)*a

(2)/b

Fori=3To5

a1=c

a2=a(i)

b=gcd(a1,a2)

c=c*a(i)/b

Nexti

Print"最小公倍数为:

";c

Fori=3To5

d=gcd(d,a(i))

Nexti

Print"最大公约数为:

";d

EndSub

 

PrivateFunctiongcd(x,y)

Ifx

t=x

x=y

y=t

EndIf

r=xMody

DoWhiler<>0

x=y

y=r

r=xMody

Loop

gcd=y

EndFunction

程序运行结果如图7-6所示:

7.7利用Function过程计算下式的值:

cos2x(0>x)

f(x)=int(6x2-5x+1)(0≤x≤3)

e3-x(3

调用该Function过程计算f(f(f(a)))+f(f(2+f(b)))的值。

a,b的值由键盘输入。

【参考答案】

程序代码设计

PrivateSubForm_Click()

a=Val(InputBox("输入a的值:

"))

b=Val(InputBox("输入b的值:

"))

t=f(f(f(a)))+f(f(2+f(b)))

Print"计算结果:

";t

EndSub

 

PrivateFunctionf(x)

Ifx<0Then

f=Cos(2*x)

ElseIfx<=3Then

f=Int(6*x*x-5*x+1)

Else

f=Exp(3-x)

EndIf

EndFunction

运行结果:

如a、b的值分别输入为3和5

则程序运行结果如图7-7所示。

 

7.8编写程序,利用Sub过程计算5×4的数组中,每行最大元素及其位置和每列最大元素及其位置。

【参考答案】

说明:

采用随机函数Rnd产生20个1~20之间的随机整数,存放在数组a中。

程序代码设计

PrivateSubForm_Click()

Dima(1To5,1To4)AsInteger

RandomizeTimer

Fori=1To5

Forj=1To4

a(i,j)=Int(20*Rnd+1)

PrintFormat(a(i,j),"@@@@@");

Nextj

Print

Nexti

Fori=1To5

Callhd(a(),i,m)

Print"第";i;"行";"最大元素是:

";a(i,m);"位置在第";m;"列"

Nexti

Print

Forj=1To4

Callld(a(),j,n)

Print"第";j;"列";"最大元素是:

";a(n,j);"位置在第";n;"行"

Nextj

EndSub

PrivateSubhd(x()AsInteger,i,m)

Max=x(i,1)

m=1

Forj=2To4

Ifx(i,j)>MaxThen

Max=x(i,j)

m=j

EndIf

Nextj

EndSub

 

PrivateSubld(x()AsInteger,j,n)

Max=x(1,j)

n=1

Fori=2To5

Ifx(i,j)>MaxThen

Max=x(i,j)

n=i

EndIf

Nexti

EndSub

程序运行结果如图7-8所示:

 

7.9编写程序,要求该程序在输入某人的编号、实发工资数额后,自动确定发给多少张一百元、五十元、十元、五元、一元、五角、一角、五分、一分的钞票,并输出实发工资总额和所需各种钞票的总数目。

(要求用Sub过程处理除一百元以外的钞票的数目)

【参考答案】

程序代码设计

PrivateSubForm_Click()

num=Val(InputBox("输入职工编号:

"))

s$=InputBox("输入职工工资:

")

l=Len(s$)

s0=Val(Left$(s$,l-5))

Callfenp(l,s$,s1,s2,s3,s4,s5,s6,s7,s8)

Print"职工编号:

";num,"职工工资:

";s$

Print"100元";s0

Print"50元";s1

Print"10元";s2

Print"5元";s3

Print"1元";s4

Print"5角";s5

Print"1角";s6

Print"5分";s7

Print"1分";s8

EndSub

PrivateSubfenp(l,s$,s1,s2,s3,s4,s5,s6,s7,s8)

l1=Val(Mid$(s$,l-4,1))

l2=Val(Mid$(s$,l-3,1))

l3=Val(Mid$(s$,l-1,1))

l4=Val(Mid$(s$,l,1))

s1=l1\5

s2=l1Mod5

s3=l2\5

s4=l2Mod5

s5=l3\5

s6=l3Mod5

s7=l4\5

s8=l4Mod5

EndSub

程序运行结果如图7-9所示:

(注意:

输入的工资保留到分)

 

 

 

 

7.10编写程序,把任意一个十进制数N转换成分别用二进制、八进制和十六进制表示的数,要求用Sub过程实现数制的转换。

【参考答案】

程序代

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1