子程序过程.ppt_第1页
子程序过程.ppt_第2页
子程序过程.ppt_第3页
子程序过程.ppt_第4页
子程序过程.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、4.多模块程序,每个相对独立的程序段在结构上是一个模块,它可以是一个子程序,一个过程或一个自定义函数。示例:建立“学籍管理”应用程序,基本概念:子程序:一个独立的程序,可以完成某些功能,并可以被其他程序使用(调用)。主程序:调用子程序的程序,1)子程序的建立:格式:MODIFY COMMAND 2)子程序的返回语句格式为3360返回主程序,1。子程序、子程序与主程序的异同:1) 2)创建方法相同:3)扩展相同。子程序的结束命令是返回到主程序;主程序的结束命令通常是CANCEL语句。3)子程序调用:DO WITH、示例:任意输入三个数字A、B、C,求这三个数字的阶乘和,即S=a!b!c!分析:

2、1,问题解决步骤:首先找到一个!b!c!然后相加并求和,2,a!b!c!的实现过程是一样的,可以通过以下程序实现:f=1为I=1至k f=f * I结束为返回,清零s=0 f=0输入 a=a输入 b=b输入 c=c k=a do ff s=s f k=b do ff s=s f k=c do ff s=s f all trim(str(a)!alltrim(str(b)!alltrim(str(c)!=alltrim(str(s)取消,子程序ff。PRG f=1表示I=1到k f=f * I结束表示返回,4)子程序的嵌套,sub 1,sub 2,sub 3,do sub 1,do sub 2返

3、回,return,do sub 3返回,主程序,sub 1,sub 2,sub 3,do sub 1,do sub 2返回,return,do sub 3返回,主程序,Sub 1,sub 2,sub 3,do sub 1,do sub 2返回,返回到主程序, 在多模块编程中,每个内存变量Variables可以根据其作用范围分为全局变量、私有变量和局部变量。2,内存变量的范围,1)其值在整个程序及其子程序中有效的全局变量;即使在程序被执行后,它们也不会被清除,但仍然存在于内存中。命令窗口中定义的变量都是全局变量。公共的,2)私有变量的值只在创建它的程序及其从属子程序中有效。隐式描述:程序中使用的

4、变量都是没有描述的私有变量。注意:某一级程序定义的私有变量在该级程序结束时被清除,不能进入上级程序。如果在主程序中定义了一个变量,它可以在下一个子程序中使用。当子程序在执行过程中改变它时,改变后的值在返回主程序时仍然会被保存,主程序可以继续使用子程序的改变后的值。例如:*主程序克莉I=1,主I=,I,J=,J取消,子程序ff2.prg I=I*2 J=i 1?Sub3360i=,I,j=,jreturn,doff2,运算结果: sub I=2 J=3 main I=2 J=变量J找不到,原因分析:由于子程序中的变量J是私有变量,其作用域只在子程序中,其定义在主程序中找不到!变量I是在主程序中定

5、义的,所以子程序可以使用并返回值,主程序克莉I=1,主I=,I,J=,J取消,子程序ff2.prg公共j I=I*2 J=i 1?Sub3360i=,I,j=,jreturn,doff2,运算结果: sub I=2 J=3 main I=2 J=3,分析:变量J在子程序中被描述为全局变量后,作用域成为整个程序,可以在主程序中找到!屏蔽显示与全局变量同名的private变量的描述:PRIVATE,主程序public i,j Store 1到I,j,k,DO ff3,I=,I,J=,J,K=,K取消,*子程序ff3专用J,k I=i*2 J=i 1 K=j 1?I=,I,J=,J,K=,K返回,结

6、果是: I=2 J=3 k=4(在子程序中输出),I=2 J=1 k=1(在主程序中输出),当私有变量与全局变量同名时,谁将扮演一个角色?私有结论:当私有变量与全局变量或上级私有变量同名时,私有变量将屏蔽子程序中同名的全局变量或上级私有变量,此时私有变量将发挥作用。在离开私有变量的范围后(私有变量被释放),全局变量或高级私有变量出现并再次工作。3)局部变量局部变量仅包含此模块,不能用于较低或较高模块。当您离开该模块时,存储单元被释放。课堂练习:下列步骤的结果是什么?*子程序sub3 PRIVATE A A=20?“SUB3”,返回,*,子程序SUB 4 A=30?“SUB4”,一个RETURN

7、,3,3,程序调用中的参数传递,当主程序被调用时,它必须使用以下语法: DO WITH子程序,第一个可执行语句必须是:PARAMENTS函数:将数据传递给子程序。如果参数表中对应的参数是内存变量,子程序返回时会将对应的形式参数值返回给主程序。注:1 .实际参数的数量和类型必须与形式参数一致。参数可以是常量、变量和表达式。参数必须是内存变量;2.实际参与的形式参数的名称可以不同。S=a的示例:b!c!clea s=0 input a= to a input b= to b input c= to c,do ff with a,子程序ff . PRG : para k f=1 for I=1 to

8、 k f=f * I end for s=s f return,do ff with b,do ff with c, s= str (s,5)取消,4。过程,格式:过程参数返回endproc1。过程名必须以字母或下划线开头,可以包含字母、数字和下划线的任意组合,但最多不能超过254个字符。2.该过程作为一个独立的模块被置于程序之下。CLEA S=0输入请输入值:到A输入请输入B值:到B输入请输入c值:到c用A做fch用B做fch用c做fch?S=STR(S,5) CANCEL *过程gchproc gchpara k f=1,I=1到k,f=f * I结束,s=s f返回endproc,使用过

9、程调用查找S=A!b!c!5,进程文件,把多个子程序放入一个PRG文件,这叫做进程文件。过程文件中的每个子程序称为内部过程。作为程序文件存储在磁盘上的子程序称为外部过程。1)编制方法:与程序文件的编制方法相同。2)进程文件的使用:在调用程序中,必须使用open命令来打开进程文件:在set proc to的使用结束后,应该关闭进程文件:set proc to或close proc3)流程文件的结构由三部分组成:流程头、流程体和程序尾。过程名称1返回到主过程名称2返回到主过程名称N返回到主过程,5,用户定义函数,1)函数类型标准函数(内部函数)用户定义函数UDF(外部函数)2)用户定义函数的建立和

10、编辑:MODI通信函数定义格式:函数参数函数体RETURN与子程序的不同之处在于RETURN语句包含一个表达式,表达式的值是返回的函数值。函数体中可以有多个RETURN语句。例如,S=A!b!c!CLEA输入“A=”到A输入“B=”到B输入“C=”到C S=FAC(A) FAC(B) FAC(C)?字符串(a3)!可疑交易报告(乙,3);STR(C,3)!=,S CANCE,* function fac . PRG : func fac para n y=1对于I=1到n y=y * I end对于return y,用户定义的函数可以出现在程序文件的底部供该程序调用;它也可以作为一个独立的程序

11、文件供所有程序调用。第9章:面向对象编程。首先,面向对象编程的特点。首先,编程模式是可视化。第二,程序运行没有一定的顺序,而是由事件驱动的。第二,基本概念。首先,对象是一种将数据和操作过程结合起来的数据结构,它是要在现实世界中处理的客观实体的抽象表达。我们要处理的一切都可能是一个对象。包含多个子对象的对象称为容器对象。VF中常见的对象包括标签、文本框和列表框。常见的容器对象有表单等等。2。对象的属性、事件和方法;1)属性:用于描述对象物理特征的一组值。例如,VFP的文本框具有标题、字体大小、可见性等属性。用户可以通过控制对象的这些属性值来修改对象。2)事件:由对象识别的动作。事件生成的方式:它

12、可以由用户动作生成,如点击鼠标或敲击键盘上的一个键;它可以由程序代码或系统生成,例如,计时器运行时触发的事件由系统生成。,3)方法:它是与对象相关联的过程,对象的事件可以有与之相关联的方法。3.类和子类;1.类是具有公共属性和公共操作属性的对象的集合。类与对象的关系:类是对象的抽象描述,而对象是类的实例。可以从某个类创建一个新类。新创建的类称为子类和派生类,起始类称为父类。2.基类(一个由VF预定义的类)容器类:一个可以容纳其他对象的类。控制类:可以被其他对象容纳,但不能被其他对象容纳的类。3.类特性的继承:子类拥有父类的所有数据和操作,并允许用户根据需要修改封装。这意味着一个类的内部信息对用户来说是隐藏的多态性。一个名称有多个语义和多个实现。基类包括容器类和控件类。3.对象的操作。1.引用容器类对象。1)绝对参考:对象1。例如,object2:要应用于命令按钮command1的文本,格式为myform1: mand1.caption,2)relative

温馨提示

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

评论

0/150

提交评论