子程序过程.ppt

上传人:石*** 文档编号:38900078 上传时间:2022-09-06 格式:PPT 页数:29 大小:1.81MB
返回 下载 相关 举报
子程序过程.ppt_第1页
第1页 / 共29页
子程序过程.ppt_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《子程序过程.ppt》由会员分享,可在线阅读,更多相关《子程序过程.ppt(29页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、子程序过程现在学习的是第1页,共29页1 1)子程序的建立:)子程序的建立:格式:格式:MODIFY COMMANDMODIFY COMMAND 2 2)子程序的返回语句)子程序的返回语句 格式格式:RETURN RETURN TO MASTERTO MASTER 1 1、子程序、子程序子程序与主程序的异同:子程序与主程序的异同:相同点:相同点:1 1)都是独立的程序;)都是独立的程序;2 2)创建的方式一样:)创建的方式一样:3 3)扩展名一样)扩展名一样.prg.prg不同点:不同点:子程序的结束命令是子程序的结束命令是RETURN TO MASTER;RETURN TO MASTER;而

2、主程序的结束命令一般而主程序的结束命令一般是是CANCELCANCEL语句。语句。现在学习的是第2页,共29页3 3)子程序的调用:)子程序的调用:DO DO WITH WITH Do 子程序子程序.主程序主程序子程序子程序 .RETURNCANCEL现在学习的是第3页,共29页例:任意输入三个数例:任意输入三个数a、b、c,求这三个数的阶乘和,求这三个数的阶乘和 即:即:S=a!+b!+c!分析分析:1、解题步骤、解题步骤:先求出先求出a!,b!,c!,再相加求和,再相加求和 2、a!,b!,c!的实现过程是一样,均可用如下程序实的实现过程是一样,均可用如下程序实现现f=1For i=1 t

3、o k f=f*iEndfor return现在学习的是第4页,共29页Clears=0F=0input“a=to ainput“b=to binput“c=to ck=ado ffs=s+fk=bdo ffs=s+fk=cdo ffs=s+f?alltrim(str(a)+!+alltrim(str(b)+!+alltrim(str(c)+!=+alltrim(str(s)cancel子程序子程序ff.prgf=1For i=1 to k f=f*iEndfor return现在学习的是第5页,共29页4 4)子程序的嵌套)子程序的嵌套SUB1 SUB2SUB3DO SUB1DO SUB2R

4、ETURNRETURNDO SUB3RETURN主程序主程序SUB1 SUB2SUB3DO SUB1DO SUB2RETURNRETURNDO SUB3RETURN主程序主程序SUB1 SUB2SUB3DO SUB1DO SUB2RETURNRETURNTO MASTERDO SUB3RETURN主程序主程序现在学习的是第6页,共29页 在多模块程序设计中在多模块程序设计中,每一个内存变量都有自己的有效范每一个内存变量都有自己的有效范围围,通常称为通常称为作用域作用域。根据变量的作用域范围可将其变量分为根据变量的作用域范围可将其变量分为全局变量全局变量和和私有变私有变量、局部变量。量、局部变量

5、。2 2、内存变量作用域、内存变量作用域 1)全局变量)全局变量 其值在其值在整个程序整个程序及其及其各子程序各子程序中有效中有效;即使程序执行完即使程序执行完后后,它们也不会被清除它们也不会被清除,而仍然存在于内存中。而仍然存在于内存中。在命令窗口中定义的变量,都是全局变量。在命令窗口中定义的变量,都是全局变量。PUBLICPUBLIC 现在学习的是第7页,共29页2)私有变量)私有变量 私有变量的值只在私有变量的值只在建立它的程序及其下级子程序建立它的程序及其下级子程序中有效。中有效。隐式说隐式说明明:使用的变量未经说明均为私有变量使用的变量未经说明均为私有变量注意:注意:某一级程序定义的

6、私有变量,在本级程序结束时被清除某一级程序定义的私有变量,在本级程序结束时被清除,不能进入上一级程序。,不能进入上一级程序。若主程序中定义了变量,它可以到下一级子程序中使用若主程序中定义了变量,它可以到下一级子程序中使用,当子程序在执行过程中改变了它,在返回主程序时被改变的值,当子程序在执行过程中改变了它,在返回主程序时被改变的值仍然保存,主程序可继续使用子程序改变后的值。仍然保存,主程序可继续使用子程序改变后的值。现在学习的是第8页,共29页例:例:*主程序主程序CleaI=1?main I=,I,J=,J cancel子程序子程序ff2.prg I=I*2 J=i+1?sub:I=,I,J

7、=,JRETURN do ff2运算结果运算结果:sub I=2 J=3sub I=2 J=3main I=2 J=main I=2 J=找不到变量找不到变量J J原因分析:原因分析:由于子程序中变量由于子程序中变量J J为私有为私有变量,作用域仅为子程序中变量,作用域仅为子程序中,主程序中找不到其定义!,主程序中找不到其定义!变量变量I I在主程序中有定义,所在主程序中有定义,所以子程序可使用并返回值以子程序可使用并返回值现在学习的是第9页,共29页主程序主程序 CleaI=1?main I=,I,J=,J cancel子程序子程序ff2.prgPublic j I=I*2 J=i+1?su

8、b:I=,I,J=,JRETURN do ff2运算结果运算结果:sub I=2 J=3sub I=2 J=3main I=2 J=3main I=2 J=3分析:分析:在子程序中将变量在子程序中将变量J J说明为说明为全局变量后,作用域变为全局变量后,作用域变为整个程序,主程序中就能整个程序,主程序中就能找到了!找到了!现在学习的是第10页,共29页同名私有变量对全局变量的屏蔽同名私有变量对全局变量的屏蔽 显示说明:显示说明:PRIVATE 主程序主程序 public i,j public i,j Store 1 to i,j,k Store 1 to i,j,kDO ff3?I=I=,I,

9、I,J=J=,J,J,K=K=,K,K cancelcancel*子程序子程序 ff3 ff3Private j,kPrivate j,kI=iI=i*2 2J=i+1J=i+1K=j+1K=j+1?I=I=,I,I,J=J=,J,J,K=K=,K,K returnreturn运算结果运算结果:I=2 J=3 k=4 I=2 J=3 k=4 (子程序中输出)(子程序中输出)I=2 J=1 k=1 I=2 J=1 k=1 (主程序中输出)(主程序中输出)当私有变量与全局变量同名时,到底谁起作用呢?当私有变量与全局变量同名时,到底谁起作用呢?现在学习的是第11页,共29页 同名私有变量对全局变量的

10、屏蔽同名私有变量对全局变量的屏蔽PRIVATE 结论:结论:当私有变量与全局变量或上级私有变量同名时当私有变量与全局变量或上级私有变量同名时,在子程序中在子程序中,私有变量将屏蔽同名的全局变量或上,私有变量将屏蔽同名的全局变量或上级私有变量,此时级私有变量,此时起作用的是私有变量起作用的是私有变量。当当离开离开私有变量作用范围(私有变量释放)私有变量作用范围(私有变量释放)后后,全局变量或上级私有变量又出现并起作用全局变量或上级私有变量又出现并起作用。现在学习的是第12页,共29页3)局部变量局部变量 local 局部变量的作用于只包括本模块局部变量的作用于只包括本模块,不能在下层或上层模块中

11、使不能在下层或上层模块中使用。离开本模块,存储单元就被释放。用。离开本模块,存储单元就被释放。现在学习的是第13页,共29页课堂练习:请问下列程序执行的结果为多少?课堂练习:请问下列程序执行的结果为多少?*子程序sub3PRIVATE AA=20?“SUB3”,ARETURN*主程序主程序A=10?“main1”,A?“main2”,A A=15?“main3”,ADO SUB3DO SUB4?“main4”,ACANCEL*子程序子程序SUB 4A=30?“SUB4”,ARETURNMain4 30运行结果为:运行结果为:Main1 10Sub3 20Main2 10Main3 15Sub4

12、 30现在学习的是第14页,共29页3、程序调用中的参数传递、程序调用中的参数传递主程序主程序调用时必须用以下语法调用时必须用以下语法:DODO WITHWITH 子程序第一条子程序第一条可执行语句必须是:可执行语句必须是:PARAMETERS PARAMETERS 功能:功能:通过通过 向子程序的向子程序的 传递数据。传递数据。若实参表中对应实参为内存变量,则子程序返回时向主程序返回对应形若实参表中对应实参为内存变量,则子程序返回时向主程序返回对应形式参数的值。式参数的值。说明:说明:1 1、实参必须与形参在、实参必须与形参在个数和类型个数和类型上一致。上一致。实参可为常量、变量和表达式。形

13、参必须是内存变量;实参可为常量、变量和表达式。形参必须是内存变量;2 2、实参与形参名字可以不同。、实参与形参名字可以不同。现在学习的是第15页,共29页例例:求求 S=a!+b!+c!S=a!+b!+c!CLEA CLEA S=0S=0INPUT INPUT“a=a=”TO a TO aINPUT INPUT“b=b=”TO b TO b INPUT INPUT“c=c=”TO c TO c DO ff WITH a子程序子程序ff.PRG:ff.PRG:PARA k PARA k f=1 f=1 FOR I=1 TO k FOR I=1 TO k f=f f=f*I I ENDFOR EN

14、DFOR s=s+f s=s+f RETURN RETURNDO ff WITH bDO ff WITH c?“S=S=“+STR(S,5)+STR(S,5)CANCELCANCEL现在学习的是第16页,共29页4、过程格式:PROCEDURE PARAMETERS RETURN ENDPROC1、过程名必须以字母或者下划线开头,可以包含字母、数字和下划线的任意组合,但最多不能超过254个字符。2、过程作为一个独立的模块放在程序的下方下方。现在学习的是第17页,共29页CLEAS=0INPUT 请输入请输入A 值值:TO AINPUT 请输入请输入B 值值:TO BINPUT 请输入请输入C

15、值值:TO CDO GCH WITH ADO FCH WITH BDO FCH WITH C?S=+STR(S,5)CANCEL*过程过程GCHPROC GCHPARA k f=1 FOR I=1 TO k f=f*iENDFORs=s+fRETURNENDPROC用过程调用求用过程调用求S=A!+B!+C!现在学习的是第18页,共29页5 5、过程文件、过程文件 将多个子程序放入一个将多个子程序放入一个PRGPRG文件文件中中,该文件称为该文件称为过程文件过程文件。过程文件中的每一个子程序称一个过程文件中的每一个子程序称一个内部过程内部过程。而单独作为一个程序文件。而单独作为一个程序文件存放

16、在磁盘上的子程序称为存放在磁盘上的子程序称为外部过程。外部过程。1 1)建立方式:)建立方式:同程序文件的建立方式。同程序文件的建立方式。2 2)过程文件的使用:)过程文件的使用:在调用程序中,必须用在调用程序中,必须用打开命令打开命令打开过程文件:打开过程文件:set proc toset proc to 使用完毕后,应使用完毕后,应关闭关闭过程文件:过程文件:set proc toset proc to 或或 close procclose proc现在学习的是第19页,共29页3 3)过程文件的结构)过程文件的结构:由过程头、过程体和程序尾三部分构成。由过程头、过程体和程序尾三部分构成。

17、PROCEDURE PROCEDURE 过过程名程名1 1 RETURN RETURN TO MASTERTO MASTER PROCEDURE PROCEDURE 过过程名程名2 2 RETURN RETURN TO MASTERTO MASTER PROCEDURE PROCEDURE 过过程名程名N N RETURN RETURN TO MASTERTO MASTER现在学习的是第20页,共29页5 5、自定义函数、自定义函数1)1)函数的类型函数的类型标准函数标准函数(内部函数)内部函数)自定义函数自定义函数 UDF UDF(外部函数)(外部函数)2)2)自定义函数的建立与编辑:与子程

18、序一样自定义函数的建立与编辑:与子程序一样MODI COMM MODI COMM)函数定义格式:函数定义格式:FUNCTION FUNCTION PARAMETERSPARAMETERS 函数体函数体 RETURN RETURN 与子程序的区别是:语句与子程序的区别是:语句RETURNRETURN中含有表达式中含有表达式,表达式的值是返回的函表达式的值是返回的函数值。数值。在函数体中可以含有多个在函数体中可以含有多个RETURNRETURN语句。语句。现在学习的是第21页,共29页例题例题 求求 S=A!+B!+C!S=A!+B!+C!CLEACLEAINPUT INPUT“A=A=”TO A

19、 TO AINPUT INPUT“B=B=”TO B TO B INPUT INPUT“C=C=”TO C TO C S=FAC(A)+FAC(B)+FAC(C)S=FAC(A)+FAC(B)+FAC(C)?STR(A,3)+?STR(A,3)+!+!+STR(B,3)+;+STR(B,3)+;!+!+STR(C,3)+STR(C,3)+!=!=,S,SCANCECANCE*函数函数 facfac.PRG:.PRG:func func facfacPARA n PARA n y=1 y=1 FOR I=1 TO nFOR I=1 TO n y=y y=y*I IENDFORENDFORRETU

20、RN yRETURN y自定义函数既可以出现在程序文件的底部,供本程序调用;也可以作为一个自定义函数既可以出现在程序文件的底部,供本程序调用;也可以作为一个独立的程序文件供所有程序调用。独立的程序文件供所有程序调用。现在学习的是第22页,共29页第九章第九章 面向对象程序设计面向对象程序设计现在学习的是第23页,共29页一、面向对象程序设计的特点一、面向对象程序设计的特点1、编程方式是可视化、编程方式是可视化2、程序运行没有一定的顺序,而是由事件驱动、程序运行没有一定的顺序,而是由事件驱动二、基本概念二、基本概念1、对象、对象 对象是一种将数据和操作过程结合在一起的数据结对象是一种将数据和操作

21、过程结合在一起的数据结构,是现实世界中待处理的客观实体的抽象表达。构,是现实世界中待处理的客观实体的抽象表达。凡是凡是我们要处理的事物都可成为对象。我们要处理的事物都可成为对象。包含多个子对象的对象称为包含多个子对象的对象称为容器对象容器对象。在在VF中常见的对象有:标签、文本框、列表框。中常见的对象有:标签、文本框、列表框。常见的容器对象有表单等。常见的容器对象有表单等。现在学习的是第24页,共29页2、对象的属性、事件和方法、对象的属性、事件和方法1)属性属性:是一组用于描述对象的物理特征的值:是一组用于描述对象的物理特征的值例如:例如:VFPVFP中一个文本框具有名字(中一个文本框具有名

22、字(captioncaption)、字号()、字号(FontsizeFontsize)、可见性()、可见性(visablevisable)等属性,用户可以通过)等属性,用户可以通过控制对象的这些属性值来操作修改对象。控制对象的这些属性值来操作修改对象。2)事件事件:由对象识别的一个动作。:由对象识别的一个动作。事件产生的途径:事件产生的途径:可以由一个用户动作产生可以由一个用户动作产生,如单击鼠标或键盘击键;可可以由程序代码或者系统产生以由程序代码或者系统产生,例如计时器运行时激发的事件是由系统产生的。3)方法方法:是与对象相关联的过程,对象的事件可是与对象相关联的过程,对象的事件可以具有与之

23、相关联的方法。以具有与之相关联的方法。现在学习的是第25页,共29页3、类与子类、类与子类1、类、类是具有共同属性、共同操作性质的对象的集合。是具有共同属性、共同操作性质的对象的集合。类与对象的关系:类是对象的抽象描述,对象则是类的实例。类与对象的关系:类是对象的抽象描述,对象则是类的实例。通过某个类为起点可以创建新的类,新创建的类称为通过某个类为起点可以创建新的类,新创建的类称为子类子类,又叫,又叫派派生类生类,起点类则称为,起点类则称为父类父类。2、基类、基类(是(是VF预先定义好的类)预先定义好的类)容器类:容器类:可以容纳其他对象的类。可以容纳其他对象的类。控件类:控件类:可以被其他对

24、象容纳,而不可以容纳其他对象的类可以被其他对象容纳,而不可以容纳其他对象的类 3、类的特性、类的特性 继承性:继承性:子类具有父类的所有数据和操作,并允许用户根据需要修子类具有父类的所有数据和操作,并允许用户根据需要修改改 封装性:封装性:指类的内部信息对用户是隐蔽的指类的内部信息对用户是隐蔽的 多态性:多态性:一个名字具有多种语义,具有多种实现一个名字具有多种语义,具有多种实现现在学习的是第26页,共29页基基类类包包括括容容器器类类和和控控件件类类现在学习的是第27页,共29页三、对象的操作三、对象的操作1、引用容器类对象、引用容器类对象1)绝对引用:)绝对引用:对象对象1.对象对象2例:

25、要作用于表单例:要作用于表单myform1myform1中命令按钮中命令按钮command1command1的文字:的文字:mand1.caption2)相对引用:)相对引用:相对引用关键字相对引用关键字.对象对象|对象属性对象属性当前对象所在的表单集 thisformset当前对象所在的表单 thisform当前对象 this当前对象的上一层容器对象 parent 引用属性或关键字现在学习的是第28页,共29页2、设置对象的属性值、设置对象的属性值:对象名对象名.属性名值属性名值1)、设置对象的单个属性值、设置对象的单个属性值:例:设置表单例:设置表单myform1myform1中命令按钮中命令按钮command1command1的文字为的文字为“显示显示”:mand1.caption=mand1.caption=“显示显示”2)、同时设置对象的多个属性值、同时设置对象的多个属性值:with with 对象名对象名 属性名属性名1 1值值1 1 属性名属性名2=2=值值2 2 endwithendwith3)、调用方法:、调用方法:对象名对象名.方法方法现在学习的是第29页,共29页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com