- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
62循环结构 - 湖南大学
6.3 多模块程序设计 PROCEDURE 过程名1 命令序列1 [ENDPROC] PROCEDURE 过程名2 命令序列2 [ENDPROC] ...... PROCEDURE 过程名n 命令序列n [ENDPROC] 6.3.1 过程的定义和使用 过程文件 6.3 多模块程序设计 过程文件也是一个扩展名为prg的程序文件,其建立和编辑的方法和其他的程序文件相同。 当主程序中要用到过程文件中所定义的过程时,首先要在主程序中通过SET PROCEDURE TO过程文件名命令打开过程文件。此后,主程序可以调用过程文件中的任一过程。当不再需要调用过程时,应该在主程序中使用命令CLOSE PROCEDURE或SET PROCEDURE TO关闭过程文件。 6.3.1 过程的定义和使用 过程文件 6.3 多模块程序设计 在调用过程时,往往需要将一些数据从主程序传送到被调用的过程中,或将过程运行的结果上传到主程序中。 为此,在定义过程时,可以用PARAMETER变量表语句来定义参数。 PARAMETER必须是过程的第1个语句。在PARAMETER中所说明的变量,称其为形参。 6.3.2 参数传递 6.3 多模块程序设计 当主程序中调用过程时,可以用DO过程名WITH参数表或过程名(参数表)进行参数传递。 在调用语句中的参数,称其为实参。实参和形参的个数、类型必须一一对应。 实参可为常量、变量、表达式。若实参为变量,必须在调用前赋予初值。 6.3.2 参数传递 使用带参数的过程实现求组合数 INPUT m= TO m INPUT n= TO n ?jc(m)/(jc(n)*jc(m-n)) RETURN PROC jc PARAMETER k t=1 FOR i=1 TO k t=t*i ENDFOR RETURN t ENDP 例题 6.3 多模块程序设计 以m为实参,m的值传送给k 调用结束后,t的值通过过程名传回到主程序 以n为实参,n的值传送给k 过程的值为n的阶乘 以m-n为实参, 过程的值为m-n的阶乘 6.3 多模块程序设计 当实参是常量或表达式时,采取值传递,即实参的值传给形参,过程中形参变化的结果不传给实参。 若采取DO过程名WITH参数格式调用过程,当实参是变量时,采取的是地址传递,即过程中形参变化的结果将传给实参。或者说,对形参的操作实际上相当于在对实参所对应的变量进行。如果将作为实参的变量加上括号,则采取值传递,过程中形参变化的结果不传给实参。 6.3.2 参数传递 6.3 多模块程序设计 若采取过程名(参数表)格式调用过程,在进行参数传递时,默认是采取值传递方式。而使用SET UDFPARMS TO REFERENCE命令,可将传递方式设置为按参数传递。使用SET UDFPARMS TO VALUE命令,则将传递方式设置为按值传递。 形参变量是局部变量。当控制返回到主程序后,形参变量即被清除。 6.3.2 参数传递 参数传递举例 x=15 y=7 DO sub WITH x,(y) ?x,y ?sub(x,y),x,y RETURN PROC sub PARAMETERS a,b a=a+b b=a RETURN a+b ENDP 例题 6.3 多模块程序设计 x是地址传递,y是值传递 返回主程序后,x的值变为22,y的值仍为7 x,y均为值传递。 返回主程序后,x和y的值不变。 显示结果58 ,22,7 6.3 多模块程序设计 多模块程序中,在一个模块中定义的变量在其他模块中不一定能够使用。不同的变量有不同的作用域,即每个变量有其发挥作用的有效范围。根据变量作用域不同,变量分为全局变量、局部变量和私有变量。 6.3.3 变量的作用域 对于读者表的所有读者,根据不同的身份来收取押金。其中,教研人员收取50元,工作人员收取30元,研究生收取20元。将所有读者的姓名,身份和押金显示出来 。 例题 6.2 程序的基本结构 6.2.3 循环结构 USE 读者 打开读者表 DO WHILE NOT EOF() 循环条件为记录指针不指向文件尾 DO CASE CASE 身份=’教研人员’ 判断当前记录的身份字段的值是否为教研人员 yj=50 对yj赋值为50 CASE 身份=’工作人员’ 判断当前记录的身份字段的值是否为工作人员 yj=30 对yj赋值
您可能关注的文档
- 2013年第二批企业研究开发项目鉴定结果一览表-黄石科技局.DOC
- 2013年第十二期-青岛国家税务局.PPT
- 2012年秋季菊展展架制作安装项目投标报价单 - 中科院武汉植物园.DOC
- 2013科技环保名校夏令营之新加坡深度纵览-广东狮子会.DOC
- 2013年超级摩托车挑战赛技术规则 符合参赛条件摩托车 1原厂 .DOC
- 2012年半年报告-四川大西洋焊接材料股份有限公司.DOC
- 2013机器人智能创新应用竞赛_远东科大电机系.DOC
- 2013高考地理极速提分必备1考前提醒 几个值得关注的点 关注 .DOC
- 2013机器人社团简介-杭州江南试验学校.PPT
- 2013年芜湖普通高考网上志愿填报操作流程.DOC
最近下载
- 专四作文举例法Exemplification教学文案.pptx VIP
- 2025年中考生物复习新题速递之绿色植物的光合作用和呼吸作用( 2024年9月).doc VIP
- 静脉输液并发症预防与处理规范-课件.ppt VIP
- 关于Listing and Exemplification的PPT重要课件.ppt VIP
- 后人类主义视角下的生物艺术研究论文.docx VIP
- 建筑施工安全生产实务注册安全工程师考试.docx VIP
- 公墓项目投标施工组织设计.pdf VIP
- 译林版七年级英语上册完形填空训练50套(含答案).pdf VIP
- 专四作文举例法Exemplification.pptx VIP
- 腰椎退行性病变的护理查房.pptx VIP
文档评论(0)