VB模块化程序设计.doc_第1页
VB模块化程序设计.doc_第2页
VB模块化程序设计.doc_第3页
VB模块化程序设计.doc_第4页
VB模块化程序设计.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VB模块化程序设计导学 东风高中刘丽梅【教学目标】理解模块化程序设计的基本思想;学会函数与过程调用方法;初步掌握模块化程序设计思想,尝试化整为零、自顶向下、逐步求精的过程设计方法。【教学重点】 学会函数与过程调用方法;理解结构化程序设计思想。【难 点】 模块化程序设计,自定义函数的定义和调用。一、 情景任务1、调研“软件危机”和“GOTO有害”论。2、人类火星探测:1963年美国火星探测器“水手3号”偏离轨道失败的原因?1962 前苏联“火星1号”探测器飞越火星尝试失败。 1965 美国“水手4号”行星际探测器飞越火星,拍摄了21张照片。3、Hanoi汉诺塔广东P134教科P704、哥德巴赫猜想教科P83 广东P61每个大于等于6的偶数,都可表示为两个奇素数之和;每个大于等于9的奇数,都可表示为三个奇素数之和。(后一个命题是前一个命题的推论)。 陈景润和他的1+2.二、 知识关联1、素数判断广东P63教科P40FalseSFI+1IR=0 X mod I R输入一个数X2 I : SF=True Y N I=X-1 N Y SF Y输出X, ”prime” 判断素数N-S流程图输入XSF=TrueFor I=2 to X-1X mod I =0 Yes NoSF= TrueSF=False SF T F输出 X,“Prime” 显示“非素数”2、质数判断VB程序 广东P63教科P40 Private Sub command1_click( ) Dim I as integer, Sf AS Boolean X=Inputbox(“”) Sf=true For I=2 to X-1 If X mod I =0 then Sf=false End if NextIf Sf Then Print x, prime Else print x, “No” End Sub3、将Check( )定义为判定素数的函数,并调用。Private Sub command1_click( )Dim N AS Integer N = InputBox( ) If Check(N) Then Print N, prime Else print N, “No”End SubPublic Function Check(X As Integer) As Boolean Dim I As Integer, Sf As Boolean Sf = True For I = 2 To X - 1 If X Mod I = 0 Then Sf = False End If Next Check = SfEnd Function4、最初N个金盘(N=2,需要利用过渡。 演示: N=2时,AC ,AB, CB N=3时, hanoi (n-1, A, C, B ) AB hanoi (n-1, C, B,A )算法:假设已经找到把N-1个金盘,从一根柱搬到另一根柱的方法,那么,(N-1个金盘)从AC,最大的金盘AB, (N-1个金盘)从CB.三、实践上机3-1验证哥德巴赫猜想教科P83 广东P61 Private Sub command1_click( )DIM N AS Integer, P AS integer, Q AS integerN=InputBox(“N=”)P=3Do If Check(P) then Q=N-P If Check(Q) then Print “N=”; P ; ”+”; Q End if P=P+1 Loop until (P=N-2) End sub3-2自定义过程TS,求多边形面积。教科P83 广东P65海龙公式求三角形面积S=SQR(P*(P-a)*(P-b)*(P-c))12/13/5Public Function Area(A AS integer, B AS integer, C AS integer) AS single Dim p as singleP=(A+B+C)/2Area= SQR(abs(P*(P-a)*(P-b)*(P-c)))End subPrivate Sub command1_click( ) Dim a1 As Single, a2 As Single, a3 As SingleDim a4 As Single, a5 As Single, S As Single a1 = 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=”; SEnd Sub3-3Hanoi汉诺塔参考程序Private Sub Command1_Click()Dim T As Long, N As IntegerClsT = 0N = InputBox( N= ? )A = AB = BC = CCall Hanoi(N, A, B, C, T)Print Tab(10); Change Times=; TEnd SubPrivate Sub Hanoi(N As Integer, ByVal A As String, _ByVal B As String, ByVal C As String, T As Long) 注:空格加下划线,为续行符If N = 1 Then Print Tab(10); A; -; B T = T + 1ElseCall Hanoi(N - 1, A, C, B, T)Print Tab(10); A; -; B; Call Hanoi(N - 1, C, B, A, T)End IfEnd Sub四、拓展提高4-1、过程调用教科P83画方 广东P64 平均数Sub panda(X As Single, y As Single, R As Single) Circle (x, y), R Circle (5 * x, y), R Circle (3 * x, 2 * y), REnd Sub Private Sub Form_click() Dim N As Single N = InputBox(Radum ) CLS Call panda(N, N, N) panda 800, 600, N End Sub注:可以使用 CALL语句调用子过程, 如 CALL PANDA(300,300,200) 也可以省略CALL关键字更简单省事些,但需同时省略括号。4-2、简析下图出错的原因。4-3、给出的程序流程图代表一个非结构化的程序,请问:(1) 为什么说它是非结构化的?(2) 设计一个等价的结构化程序。图6 一个非结构化程序4-4、软件危机(Software Crisis) 软件危机是计算机软件在它的开发和维护过程中所遇到的一系列严重问题。概括地说,主要包含两方面的问题:如何开发软件,怎样维护软件。 “软件危机”使得人们开始对软件及其特性进行更深一步的研究,人们改变了早期对软件的不正确看法。早期那些被认为是优秀的程序常常很难被别人看懂,通篇充满了程序技巧。现在人们普遍认为优秀的程序除了功能正确,性能优良之外,还应该容易看懂、容易使用、容易修改和扩充。如果所开发的软件其可靠性得不到保障,在运行中将会产生不堪设想的严重后果。如,银行的存款可能被化为乌有,甚至弄成赤字;工厂的产品全部报废,导致工厂破产。 最为突出的例子是美国IBM公司于1963年1966年开发的IBM360系列机的操作系统。该软件系统花了大约5 000人一年的工作量,最多时,有 1000人投入开发工作,写出近100万行的源程序。尽管投入了这么多的人力和物力,得到的结果却极其糟糕。据统计,这个操作系统每次发行的新版本都是从前一版本中找出1000个程序错误而修正的结果。可想而知,这样的软件质量糟到了什么地步。 1963年,美国用于控制火星探测器的计算机软件中的一个“,”号被误写为“”,而致使飞往火星的探测器发生爆炸,造成高达数亿美元的损失。 在60年代末和70年代初,关于GOTO语句的用法的争论比较激烈。主张从高级程序语言中去掉GOTO语句的人认为,GOTO语句是对程序结构影响最大的一种有害的语句,持反对意见的人认为,GOTO语句使用起来比较灵活。任何程序都可以用顺序、分支和重复结构表示出来。从高级程序语言中去掉GOTO语句并不影响高级程序语言的编程能力,而且编写的程序的结构更加清晰。结构程序设计的思想体现在采用了一些比较行之有效的方法,有代表性的是“逐步求精”方法。所谓“逐步求精”,就是在编制一个程序时,首先考虑程序的整体结构而暂时忽略一些细节问题,然后逐步地一层一层地细化直至用所选用的语言完全描述每一个细节,即得到所期望的程序为止。换言之,它是按照先全局后局部、先整体后细节、先抽象后具体的过程组织人们的思维活动,使得编写出的程序结构清晰、容易理解、容易验证、容易修改。时下,国内外软件公司多如牛毛,软件危机过去了么?五、归纳总结函数与过程的异同点比较表函数过程定义Public Function

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论