资源描述:
《vb模块化程序设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、VB模块化程序设计导学东风高中刘丽梅【教学目标】理解模块化程序设计的基本思想;学会函数与过程调用方法;初步掌握模块化程序设计思想,尝试化整为零、自顶向下、逐步求精的过程设计方法。【教学重点】学会函数与过程调用方法;理解结构化程序设计思想。【难点】模块化程序设计,自定义函数的定义和调用。一、情景任务1、调研“软件危机”和“GOTO有害”论。2、人类火星探测:1963年美国火星探测器“水手3号”偏离轨道失败的原因?1962前苏联“火星1号”探测器飞越火星尝试失败。1965美国“水手4号”行星际探测器飞越火星,拍摄了21张照片。3、Hanoi汉诺
2、塔《广东P134》《教科P70》4、哥德巴赫猜想《教科P83》《广东P61》每个大于等于6的偶数,都可表示为两个奇素数之和;每个大于等于9的奇数,都可表示为三个奇素数之和。(后一个命题是前一个命题的推论)。陈景润和他的1+2.一、知识关联1、素数判断《广东P63》《教科P40》False→SFI+1→IR=0XmodI→R输入一个数X2→I:SF=TrueYNI>=X-1NYSFY输出X,”prime”判断素数N-S流程图输入XSF=TrueForI=2toX-1XmodI=0YesNoSF=TrueSF=FalseSFTF输出X,“Pri
3、me”显示“非素数”2、质数判断VB程序《广东P63》《教科P40》PrivateSubcommand1_click()DimIasinteger,SfASBooleanX=Inputbox(“”)Sf=trueForI=2toX-1IfXmodI=0thenSf=falseEndifNextIfSfThenPrintx,"prime"Elseprintx,“No”EndSub3、将Check()定义为判定素数的函数,并调用。PrivateSubcommand1_click()DimNASIntegerN=InputBox("")IfChe
4、ck(N)ThenPrintN,"prime"ElseprintN,“No”EndSubPublicFunctionCheck(XAsInteger)AsBooleanDimIAsInteger,SfAsBooleanSf=TrueForI=2ToX-1IfXModI=0ThenSf=FalseEndIfNextCheck=SfEndFunction4、最初N个金盘(N<=4),三根宝石柱分别命名A,B,C.要求把A柱的金盘全部移到B。当N=1,直接从A移到B;当N>=2,需要利用C过渡。 演示:N=2时,AàC,AàB,CàBN=3
5、时,hanoi(n-1,A,C,B)AàBhanoi(n-1,C,B,A)算法:假设已经找到把N-1个金盘,从一根柱搬到另一根柱的方法,那么,(N-1个金盘)从AàC,最大的金盘AàB,(N-1个金盘)从CàB.三、实践上机3-1.验证哥德巴赫猜想《教科P83》《广东P61》PrivateSubcommand1_click()DIMNASInteger,PASinteger,QASintegerN=InputBox(“N=”)P=3DoIfCheck(P)thenQ=N-PIfCheck(Q)thenPrint“N=”;P;”+”;QEnd
6、ifP=P+1Loopuntil(P=N-2)Endsub3-2.自定义过程TS,求多边形面积。《教科P83》《广东P65》海龙公式求三角形面积S=SQR(P*(P-a)*(P-b)*(P-c))12/13/5PublicFunctionArea(AASinteger,BASinteger,CASinteger)ASsingleDimpassingleP=(A+B+C)/2Area=SQR(abs(P*(P-a)*(P-b)*(P-c)))EndsubPrivateSubcommand1_click()Dima1AsSingle,a2AsS
7、ingle,a3AsSingleDima4AsSingle,a5AsSingle,SAsSinglea1=InputBox("a1=12")a2=InputBox("a2=13")a3=InputBox("a3=12")a4=InputBox("a4=13")a5=InputBox("对角线a5=5")S=Area(a1,a2,a5)+Area(a3,a4,a5)Print“S=”;SEndSub3-3.Hanoi汉诺塔参考程序PrivateSubCommand1_Click()DimTAsLong,NAsIntegerClsT=0N=In
8、putBox("N=?")A="A"B="B"C="C"CallHanoi(N,A,B,C,T)PrintTab(10);"ChangeTimes=";TEndSubPrivat