还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第7章过程 7.1编写程序利用Sub过程计算下式的值:s=a!+b!+c!abc的值由键盘输入【参考答案】程序代码设计PrivateSubForm_ClickDimsAsIntegernAsIntegerFori=1To3n=InputBoxn=Callfactnfs=s+fNextiPrints=;sEndSub PrivateSubfactnff=1Fori=1Tonf=f*iNextiEndSub运行结果如a、b、c的值分别输入为
4、
5、6则程序运行结果如图7-1所示 7.2编写程序打印100~200之间的所有素数要求:1每行输出5个素数2利用Function过程判断每个数是否为素数是返回1否则返回0【参考答案】程序代码设计PrivateSubForm_ClickPrint2;k=1Fori=3To100f=primeiIff=1Thenk=k+1IfkMod5=0ThenPrintiElsePrinti;EndIfNextiEndSub PrivateFunctionprimenprime=1Fori=2Ton-1IfnModi=0Thenprime=0:ExitForNextiEndFunction程序运行结果如图7-2所示 7.3编写程序利用Function过程计算下式的值:1+2+3+…+m+1+2+3+…+ny=───────────────1+2+3+…+p【参考答案】程序代码设计PrivateSubForm_Clickm=ValInputBox输入m:n=ValInputBox输入n:p=ValInputBox输入p:y=summ+sumn/sumpPrintsum=;yEndSub PrivateFunctionsumns=0Fori=1Tons=s+iNextisum=sEndFunction运行结果如输入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_Clicks=0t=0Fori=1To19Step3t=t+factis=s+1/tNextiPrints=;sEndSub PrivateFunctionfactnf=1Fori=1Tonf=f*iNextifact=fEndFunction程序运行结果如图7-4所示 xx2x3xn7-5计算ex=1+─+─+─+…+─1!2!3!n!xn设x=1,2,3,4,5,6时,分别打印ex的值要求精度─
0.0001n!用Function过程计算n!调用该过程计算上式的值【参考答案】程序代码设计PrivateSubForm_ClickForx=1To6Sum=1t=1n=0Don=n+1t=t*xterm=t/factnSum=Sum+termLoopUntilterm
0.0001Printe^;x;=;SumNextxEndSub PrivateFunctionfactnf=1Fori=1Tonf=f*iNextifact=fEndFunction程序运行结果如图7-5所示 7.6编写两个Function过程分别计算40,16,34,26,52的最大公约数和最小公倍数【参考答案】程序代码设计PrivateSubForm_ClickDima1To5AsIntegera1=40a2=16a3=34a4=26a5=52a1=a1a2=a2b=gcda1a2d=bc=a1*a2/bFori=3To5a1=ca2=aib=gcda1a2c=c*ai/bNextiPrint最小公倍数为;cFori=3To5d=gcddaiNextiPrint最大公约数为;dEndSub PrivateFunctiongcdxyIfxyThent=xx=yy=tEndIfr=xModyDoWhiler0x=yy=rr=xModyLoopgcd=yEndFunction程序运行结果如图7-6所示7.7利用Function过程计算下式的值:cos2x0xfx=int6x2-5x+10≤x≤3e3-x3x调用该Function过程计算fffa+ff2+fb的值a,b的值由键盘输入【参考答案】程序代码设计PrivateSubForm_Clicka=ValInputBox输入a的值:b=ValInputBox输入b的值:t=fffa+ff2+fbPrint计算结果:;tEndSub PrivateFunctionfxIfx0Thenf=Cos2*xElseIfx=3Thenf=Int6*x*x-5*x+1Elsef=Exp3-xEndIfEndFunction运行结果如a、b的值分别输入为3和5则程序运行结果如图7-7所示 7.8编写程序利用Sub过程计算5×4的数组中每行最大元素及其位置和每列最大元素及其位置【参考答案】说明采用随机函数Rnd产生20个1~20之间的随机整数,存放在数组a中程序代码设计PrivateSubForm_ClickDima1To51To4AsIntegerRandomizeTimerFori=1To5Forj=1To4aij=Int20*Rnd+1PrintFormataij@@@@@;NextjPrintNextiFori=1To5CallhdaimPrint第;i;行;最大元素是:;aim;位置在第;m;列NextiPrintForj=1To4CallldajnPrint第;j;列;最大元素是:;anj;位置在第;n;行NextjEndSubPrivateSubhdxAsIntegerimMax=xi1m=1Forj=2To4IfxijMaxThenMax=xijm=jEndIfNextjEndSub PrivateSubldxAsIntegerjnMax=x1jn=1Fori=2To5IfxijMaxThenMax=xijn=iEndIfNextiEndSub程序运行结果如图7-8所示 7.9编写程序要求该程序在输入某人的编号、实发工资数额后自动确定发给多少张一百元、五十元、十元、五元、一元、五角、一角、五分、一分的钞票并输出实发工资总额和所需各种钞票的总数目要求用Sub过程处理除一百元以外的钞票的数目【参考答案】程序代码设计PrivateSubForm_Clicknum=ValInputBox输入职工编号:s$=InputBox输入职工工资:l=Lens$s0=ValLeft$s$l-5Callfenpls$s1s2s3s4s5s6s7s8Print职工编号:;num职工工资:;s$Print100元;s0Print50元;s1Print10元;s2Print5元;s3Print1元;s4Print5角;s5Print1角;s6Print5分;s7Print1分;s8EndSubPrivateSubfenpls$s1s2s3s4s5s6s7s8l1=ValMid$s$l-41l2=ValMid$s$l-31l3=ValMid$s$l-11l4=ValMid$s$l1s1=l1\5s2=l1Mod5s3=l2\5s4=l2Mod5s5=l3\5s6=l3Mod5s7=l4\5s8=l4Mod5EndSub程序运行结果如图7-9所示(注意输入的工资保留到分) 7.10编写程序把任意一个十进制数N转换成分别用二进制、八进制和十六进制表示的数,要求用Sub过程实现数制的转换【参考答案】程序代码设计PrivateSubForm_ClickDimb30AsIntegerDoPrint1-----10进制转换为2进制Print2-----10进制转换为8进制Print3-----10进制转换为16进制Print4-----退出n=ValInputBox请选择1,2,3,或4:SelectCasenCase123a=ValInputBox请输入一个10进制整数:m=ValInputBox请输入要转换的进制:CallzhuanhabmCase4ExitDoEndSelectLoopEndSubPrivateSubzhuanhabAsIntegermaa=ak=1DoUntila=0r=aModmbk=rk=k+1a=a\mLoopk=k-1Print;aa;10=;Fori=kTo1Step-1Ifbi=10ThenPrinta;;ElseIfbi=11ThenPrintb;;ElseIfbi=12ThenPrintc;;ElseIfbi=13ThenPrintd;;ElseIfbi=14ThenPrinte;;ElseIfbi=15ThenPrintf;;ElsePrintbi;EndIfNextiPrint;mEndSub程序运行结果如图7-10所示 7.11编写Sub过程用于计算n个学生m门课的平均成绩并按平均成绩的优劣打印学生的名次、学号和平均成绩要求:学生的学号每门课的成绩以及成绩单的打印由主程序完成【参考答案】程序代码设计PrivateSubForm_ClickDimno5AsLonga54AsIntegerDims5AsIntegeraver5AsIntegerFori=1To5noi=InputBoxno:Forj=1To4aij=InputBoxscore:NextjNextiCallsortnoasaver54Print名次学号平均成绩Fori=1To5Printi;;noi;;averiNextiEndSub Subsortnoa%s%aver%n%m%Fori=1Tonsi=0Forj=1Tomsi=si+aijNextjaveri=si/mNextiFori=1Ton-1Forj=i+1TonIfaveriaverjThent=averiaveri=averjaverj=tk=noinoi=nojnoj=kEndIfNextjNextiEndSub程序运行结果如图7-11所示 7.12用Sub过程输出由字符组成的三角形图形通过三次调用该过程,输出下列三种图形:A*OAAA***OOOAAAAA*****OOOOOAAAAAAA*******OOOOOOOAAAAAAAAA*********OOOOOOOOO 【参考答案】程序代码设计PrivateSubForm_Clicka$=ACallprnta$a$=*Callprnta$a$=OCallprnta$EndSub Subprnta$Fori=1To5PrintTab15-i;Forj=1To2*i-1Printa$;NextjPrintNextiEndSub程序运行结果如图7-12所示.图7-1程序运行结果图7-2程序运行结果图7-3程序运行结果图7-4程序运行结果图7-5程序运行结果图7-6程序运行结果图7-7程序运行结果图7-8程序运行结果图7-9程序运行结果图7-10程序运行结果图7-11程序运行结果图7-12程序运行结果。