版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章VFP程序设计二概要26.3模块化程序设计6.3.1模块的定义与调用
1、子程序的定义和调用(1)子程序的定义命令:MODIFYCOMMAND<子程序文件名>,扩展名为.PRG.
是以一个单独程序文件存放子程序代码的。(2)子程序的调用格式:DO<子程序文件名>[WITH<实际参数表>]
功能:调用<子程序文件名>所指定的子程序。
3*主程序SETTALKOFFSTORE0TOP,SFORN=1TO10DOJC1WITHNS=S+PENDFOR?”SUM=”,SRETURN*子程序PARAMETERXP=1FORM=1TOXP=P*MENDFORRETURN计算1到10之间整数的阶乘和。42、过程的定义与调用(1)过程的定义格式:PROCEDURE<过程名>[PARAMETERS<形式参数表>]
<语句序列>[RETURN[<表达式>]][ENDPROC]说明:*过程开始:PROC<过程名>*过程结束:ENDPROC*过程返回:RETURN[<表达式>]
5(2)过程文件
*过程文件的建立:和程序文件的建立方法一样,文件扩展名.PRG*
过程文件的打开:调用过程文件中的过程前,必须打开过程文件。
格式:setprocedureto[过程文件1,…]说明:打开过程文件后,则该过程文件中的所有过程都能被调用。
*过程文件的关闭
格式:setprocedureto说明:关闭所有打开的过程文件。
说明:过程可放在主程序代码的后面,也可将多个过程保存在一个独立程序文件中。6(3)过程的调用格式:DO<过程名>[WITH<实际参数表>]SETTALKOFF&&主程序STORE0TOP,SFORN=1TO10DOJC2WITHNS=S+PENDFOR?”SUM=”,SRETURNPROCJC2&&建立求X!的过程JC2PARAMETERXP=1FORM=1TOXP=P*MENDFORRETURNENDPROC7求和与乘积SettalkoffStore1tos,pDox?“s=”,sSettalkonReturnProcxM=11N=12s=m+np=s*n?”p=”,pendproc运行结果:p=276s=238
3、自定义函数的定义与调用(1)自定义函数的定义格式:FUNCTION<函数名>[PARAMETERS<形式参数表>]
<语句序列>[RETURN[<表达式>]][ENDFUNC]
说明:*过程开始:FUNC<函数名>*过程结束:ENDFUNC*过程返回:RETURN[<表达式>]9(2)自定义函数的调用格式:函数名([<实际参数表>])
SETTALKOFF&&主程序STORE0TOP,SFORN=1TO10S=S+JC3(N)ENDFOR?”SUM=”,SRETURNFUNCTIONJC3&&建立求X!的自定义函数JC3PARAMETERXP=1FORM=1TOXP=P*MENDFORRETURNP
&&返回变量P的值,P不可省略ENDFUNC10自定义函数可放在主程序代码的后面,则可直接调用。若自定义函数放在过程文件中,则调用前需用SETPROCEDURETO命令打开。自定义函数同标准函数一样,可以作为运算对象出现在表达式中。RETRUN后应跟返回值,可为变量或表达式。若缺省返回值,则返回.T.。116.3.2模块间的参数传递*要使一个过程能够接受参数,必须在过程的第一条可执行语句之前使用PARAMETERS进行参数定义。格式:PARAMETERS<形参变量名表>调用格式:DO<文件名>|<过程名>WITH<实参表>12参数传递的两种方式:(1)按“引用”传递:形参发生改变时,实参也跟着改变;当实参为变量形式时,参数传递的方式为按“引用”传递;可以用SETUDFPARMSTOVALUE改变为按“值”传递。(2)按“值”传递:形参发生改变时,不影响实参的值;当实参是常量或表达式时,参数传递的方式为按“值”传递。
SETUDFPARMSTOREFERENCE设置为按“引用”传递。13*例6-35SETTALKOFFCLEARA=8B=10?”A=”,A,”B=”,BDOPWITHA,(B)?”A=”,A,”B=”,BRETURNPROCPPARAMETERSM,NM=M+NN=M*NRETUENDP运行结果:A=8B=10A=18B=108A10BA、M10N14分析如下程序:SETTALKOFFFORI=15TO12STEP-1?I,JC(I)ENDFORSETTALKONRETURNFUNCTION
JCPARA
MP=1FORJ=2TOM-1IFMOD(M,J)=0P=0EXITENDIFENDFORRETURNIIF(P=1,"Y","N")运行结果:NNY12
N156.3.3模块中变量的作用域1、变量的分类(按作用域)(1)公共变量(全局变量)格式:PUBLIC<内存变量名表>功能:建立公共的内存变量,初始值为.F.。说明:作用范围为所有模块。程序运行结束返回到命令窗口后,公共变量不会自动释放。只有执行CLEAR
MEMORY、RELEASE、QUIT等命令后,才被释放。16定义全局变量PUBLIC
NUMNUM=1DOARETURNPROCANUM=NUM+5DOBRETUPROCBNUM=NUM+6?NUMRETU运行结果:1217(2)局部变量:只能在建立它的模块中使用。格式:LOCAL<变量名表>clearmemorydoaretuprocalocalnumnum=2dobretuprocbnum=num+5?numretu局部变量只能在定义它的模块中使用,不能缩写。当定义局部变量的模块程序运行结束时,该局部变量会自动释放。模块中用参数语句LPARAMETERS<形式参数表>定义的形参为局部内存变量。18(3)私有变量:在程序中直接定义或使用的非全局变量,作用范围限于此过程和此过程中的过程。格式:PRIVATE<内存变量名表>功能:定义私有内存变量,初始值为.F.。说明:私有变量的作用域是定义它的模块及其下属的各层模块。当定义私有变量的模块程序运行结束时,该私有变量会自动释放。模块中用参数语句PARAMETERS<形式参数表>定义的形参为私有内存变量。19CLEAR
MEMORYDOA?NUMRETUPROCAPRIVATENUMNUM=2DOBRETUPROCBNUM=NUM+5?NUMRETU202、变量的隐藏当同一模块中出现同名的各种变量时,上层模块中已经存在的内存变量将被隐藏。SETTALKOFFV1=100V2=150DOP?V1,V2LISTMEMORYLIKEV*RETU*过程PPROCPPRIVATEV1&&V1为私有变量V1=500V2=1000?V1,V2LISTMEMORYLIKEV*RETURN21SETTALKOFFCLEARPUBLICX1SETTALKONSTORE"abc"TOX1,X2,X3,X4?"主程序第一次显示:"LISTMEMORYLIKEX*DOP1?"主程序第二次显示:"LISTMEMORYLIKEX*RETURNPROCP1LOCALX2PRIVATEX4STORE"xxx"TOX1,X2,X3,X4?"过程P1显示:"LISTMEMORYLIKEX*DOP2RETURNENDPROCPROCP2STORE"yyy"TOX1,X2,X3,X4?"过程P2显示:"LISTMEMORYLIKEX*RETURNENDPROC22SETTALKOFFUSEXSDALISTDOWHILE.T.CLEARTEXT1.显示记录
2.插入记录
3.删除记录
4.退出
ENDTEXTWAIT"请选择要执行的操作(1-4)"TOXIFVAL(X)>=1ANDVAL(X)<=3INPUT"请选择记录号"TONGONDOCASECASEX='1'DISPLAYCASEX='2'INSERTCASEX='3'DELETEENDCASEELSECLEACANCELENDIFY=MESSAGEBOX("是否继续操作",4)IFY=7CLEARCANCELENDIFENDDOSETTALKON实验6-1:23SETTALKOFF
CLEAR
INPUT"N="TON
S=1
P=0
FORI=1TON
DOJCWITHI,P
S=S+1/P
ENDFOR
?S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 固定资产管理登记表及维护计划
- 证券投资实训比赛
- 保障教育服务安心承诺书9篇
- 电信公司技术支持部工程师技术支持能力考核表
- 七进活动进企业实施方案
- 交通设计规划工程师城市交通设计优化效果绩效评定表
- 机关道德教育体系建设路径
- 软体家具设计软件应用解析
- 浙江省杭州市第四中学 2026届化学高二上期末学业质量监测模拟试题含答案
- 肌肉活动的神经调控
- 静脉用药集中调配培训
- 2025及未来5-10年高速插秧机项目投资价值市场数据分析报告
- 护患沟通培训课件
- 安全管理人员培训课件
- 企业财务制度规范范本合集
- 2025年秋统编版(2024)小学道德与法治一年级上册期中检测试卷及答案
- 注塑件外观不良
- 2026年中国飞机MRO软件项目经营分析报告
- 2025危大钢结构全流程施工危险源辨识、施工技术及监管要点指南(符合31号文)
- 特种设备安全管理组织机构
- 河道生态修复与水质改善方案
评论
0/150
提交评论