《模块化程序设计》参考教案_第1页
《模块化程序设计》参考教案_第2页
《模块化程序设计》参考教案_第3页
《模块化程序设计》参考教案_第4页
《模块化程序设计》参考教案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

8/8模块化程序设计教学主要内容: 模块化程序设计教学目标与要求: 通过对本章的学习,使学生掌握过程与函数过程的使用教学重点与难点: 教学重点:Sub过程与函数过程的定义与调用教学难点:参数传递的意义教学素材:VisualBasic程序设计教程多媒体课件多媒体课室教学方法:讲授法 课型:新授课教学过程:[课程引入]:先列出1个问题,让学生思考这样的问题用以前学过的知识怎样解决,之后引入过程。例:某同学遇到了这样的一个编程问题:1!+3!+5!=?分析:该题目是把三个数的阶乘求和。若用前面学习的方法,每个数的阶乘都需要写一段代码。若把求阶乘的代码作为“公共”程序段落,那么求各个数的阶乘时,就只需调用这个“公共”程序段落就可以了。这个“公共”程序段落可以定义成过程,称为“通用过程”。过程的引入:使同类的操作不重复(操作方法相同、参数不同)过程:完成一段独立功能,可供其他过程使用(调用)。过程又称为子程序调用过程:调用其他过程的过程调用过程调用过程:调用fact调用fact调用fact子程序:fact过程分类:Function过程分为:内部函数和自定义函数Sub过程分为:内部过程、事件过程和自定义过程[课堂讲解]:Function过程Function过程的定义1.Function过程的格式[Public|Private][Static]Function<函数过程名>([<形参表>])[As<类型>][<语句组>][<函数过程名>=<表达式>][ExitFunction][<语句组>][<函数过程名>=<表达式>]EndFunction2.说明(1)Public:缺省值。使用Public时表示所有模块的所有其他过程都可以调用该Function过程。(2)Private:使用Private时表示只有本模块中的其他过程才可以调用该Function过程。(3)Static:使用Static时表示将过程中的所有局部变量说明为静态变量。(4)<函数过程名>:Function过程的名称,遵循变量的命名规则。(5)<形参表>:表示在调用时要传递给Function过程的参数变量列表。多个变量之间用逗号隔开。<形参表>格式:[ByVal|ByRef]<变量名>[()][As<类型>]ByVal:表示该参数按值传递。ByRef:缺省值。表示该参数按地址传递。<变量名>:遵循变量命名规则的任何变量名或数组名。():当参数为数组时使用。(7)ExitFunction语句:从Function过程中退出。(8)Function过程通过赋值语句<函数过程名>=<表达式>将函数的返回值赋给<函数过程名>。(9)Function过程的定义不能嵌套。3.Function过程的建立:•直接在代码窗口中输入。•在代码窗口:“工具”菜单→“添加过程”命令。Function过程的调用直接在表达式中调用。格式:<函数过程名>([<实参表>])<实参表>:常量、变量或表达式,各参数之间用逗号分隔。如果是数组,在数组名之后必须跟一对空括号。【例1】求1!+3!+5!=?'自定义求阶乘的函数过程FactFunctionFact(NAsInteger)AsDoubleDimiAsInteger,FAsDoubleF=1'F用于保存阶乘值Fori=1ToNF=F*iNextiFact=F'给函数过程名赋值EndFunction'在按钮的Click事件过程中调用函数过程PrivateSubForm_Click()DimsumAsDoublesum=sum+Fact(1)+Fact(3)+Fact(5)'调用函数Print"1!+3!+5!=";sumEndSub1.函数需先定义再调用。2.函数通过函数名返回结果。【例2】利用Function过程计算阶乘,求组合数。界面如下图所示。运行时,在文本框Text1和Text2中输入m和n值,单击按钮计算组合数,结果显示于文本框Text3中。'自定义求阶乘的函数FactFunctionFact(NAsInteger)AsDoubleDimFAsDouble,iAsIntegerF=1Fori=1ToNF=F*iNextiFact=FEndFunction'按钮的Click事件过程PrivateSubCommand1_Click()DimmAsInteger,nAsInteger,cAsDoublem=Val(Text1.Text):n=Val(Text2.Text)'调用Fact函数求各阶乘值c=Fact(m)/(Fact(n)*(Fact(m-n)))Text3.Text=Trim(Str(c))EndSub调用时的参数可以是常量,也可以是变量。Sub过程Sub过程的定义1.Sub过程的格式[Private|Public][Static]Sub<过程名>[(<形参表>)][<语句组>][ExitSub][<语句组>]EndSub2.说明(1)ExitSub用于退出Sub过程。(2)<过程名>不具有值的意义,在Sub过程中不能给<过程名>赋值,也不能给<过程名>定义类型。(3)Sub过程通过<形参表>中的参数返回值。(4)Sub过程的建立方法与Function过程的建立方法相同。2.说明(1)ExitSub用于退出Sub过程。(2)<过程名>不具有值的意义,在Sub过程中不能给<过程名>赋值,也不能给<过程名>定义类型。Sub过程的调用格式一:Call<过程名>[(<实参表>)]格式二:<过程名>[<实参表>]说明:(1)<过程名>:要调用的Sub过程名;(2)<实参表>:可以是常量、变量或表达式,各参数之间用逗号分隔。如果是数组参数,则要在数组名之后跟一对空括号。(3)用Call语句调用一个Sub过程时,如果过程本身没有参数,则省略<实参表>和括号。(4)格式二省略了Call关键字,同时<实参表>两边也不能带括号。【例3】用Sub过程实现求1!+3!+5!。OptionExplicitSubFact(NAsInteger,FAsDouble)DimIAsIntegerF=1ForI=1ToNF=F*INextIEndSubPrivateSubCommand1_Click()DimF1AsDouble,F2AsDouble,F3AsDoubleDimsumAsDouble'调用Fact过程求1的阶乘,阶乘值存于实参F1中CallFact(1,F1)'调用Fact过程求3的阶乘,阶乘值存于实参F2中CallFact(3,F2)'调用Fact过程求5的阶乘,阶乘值存于实参F3中CallFact(5,F3)sum=F1+F2+F3Print"1!+3!+5!=";sumEndSubSub过程通过参数来返回结果。【例4】编写Sub过程,打印以下图形。分析:打印以上图形,不需要返回值,因此无需引入参数。Suba()Fori=1To6PrintTab(7-i);Forj=1To2*i-1Print"*";NextjPrintNextiEndSubPrivateSubForm_Click()Calla()EndSub【例5】编写Sub过程,求三个数中的最大数和最小数。分析:首先要设置三个参数,如x、y、z,用于接收三个原始数据,另外引入两个参数max和min,用于返回最大和最小数。Subs(x,y,z,max,min)max=xmin=xIfy>maxThenmax=yIfy

温馨提示

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

评论

0/150

提交评论