- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第四章程序及子程序设计
第三部分;4.4多模块程序;2.子程序调用
格式:
do子程序名[with参数列表]
功能:调用指定子程序并运行。
with选项用于调用子程序时,主程序可以向子程序传递参数。
在调用时,主程序可以调用子程序,子程序还可以再调用其他子程序。
主程序调用子程序过程中,子程序可以引用主程序中的变量,在子程序中对主程序的变量的修改结果能返回到主程序中。;主程序main.prg;主程序main.prg;例20编写主程序调用子程序,从键盘输入一个整数求该数的阶乘。
分析:把程序分成2个部分,主程序输入一个整数n,建立一个变量s表示阶乘积,调用子程序jc,输出计算结果;子程序用forendfor循环计算乘积,引用变量n和s。
说明:子程序在调用时,会把相应的子程序从磁盘读入内存,并执行。如果子程序被多次调用,这样会影响程序的运行时间,从而降低运行效率。
输入5测试。;1)新建主程序文件为s20.prg,输入如下代码:
*主程序
input请输入一个正整数:ton
s=1
dojc
?阶乘值为:,s
return
2)新建子程序文件为jc.prg,输入如下代码:
*子程序jc
fori=1ton
s=s*i
endfor
return
3)在命令窗口,输入dos20。;4.4.2过程文件
在程序执行时,主程序可能调用很多子程序,需要将每个子程序调入内存,过多调用将造成系统运行效率降低。
因此,可将一个子程序或多个子程序合并成一个过程文件,执行时将过程文件打开,过程文件所包含过程将一次全部调入内存,提高运行效率。
1.过程文件的建立
一个过程就是一个具有特定功能的命令文件(.prg),它的建立、运行与一般程序相同,至少要有一条return返回语句。
过程文件的基本结构:
procedure过程名1
命令序列1
[return[tomaster]]
Endproc
…;procedure过程名n
命令序列n
[return[tomaster]]
endproc
说明:每一个过程均以procedure开始,以endproc结束。
每个过程实际上是一个独立的子程序。
endproc和return可以省略,如果省略,过程以下一个procedure开始或文件结尾表示结束。
过程名一般以字母开头,可包含字母、数字和下划线。
如果省略return命令,则在过程结束处自动执行一条隐含的return语句。
可以将过程放在单独的程序文件中,也可以放在主程序的结尾,但是不能放在主程序代码之前。;2.过程文件的建立
在过程文件被打开之前,过程文件所包含过程是不能被任何程序调用的,调用过程文件之前必须要打开过程文件,调用结束后要关闭过程文件。
1)过程文件的打开命令
格式:setprocedureto过程文件名1[,过程文件名2,…][additive]
说明:打开一个或多个过程文件
Additive是在打开过程文件时不关闭前面打开的过程文件,省略时会先关闭前面打开的过程文件,再打开指定的过程文件。过程文件被打开后,它所包括的过程便可被其他程序调用。
打开过程文件的命令在主程序中使用,一般就放在程序的前面、循环的外面,至少应放在调用过程文件中的过程命令之前。
也可以把主程序与过程合在一起,组成一个磁盘文件。但主程序必须在文件的开始位置,这样才能在主程序中直接调用过程。;2)过程文件的关闭命令
格式:
setprocedureto或closeprocedure
releaseprocedure过程文件名1[,过程文件名2,…]
说明:setprocedureto或closeprocedure是关闭所有打开的过程文件,而
releaseprocedure是只关闭指定的过程文件。
过程文件使用完后,要及时关闭,以释放其占用的内存空间。
3)过程文件的调用
格式:do过程名[in文件名][with参数列表]
说明:将多个过程存放在一个文件中形成过程文件。过程文件中的过程不能作为一个命令文件单独存盘或独立运行。
过程如果以return表达式作为结束语句,那么该过程既可用do过程名的形式执行,又可当作一个合法的自定义函数,可供随时调用。;例21从键盘上输入一个正整数n,求s=1+2+…n及p=1*2*…n的值(利用过程文件完成)。输入5测试。
分析:把求s及p的值的程序设计为过程,主程序输入n值,然后调用两个过程计算s及p的值,求累加和、阶乘的程序,分别放到过程中。
1)新建程序文件为s21.prg,输入如下代码:
*主程序
input请输入一个正整数ton
setproceduretogc
s=0
p=1
dojh
dojc
?累加和为:,s,阶乘为:,p
setp
您可能关注的文档
最近下载
- 模拟试题1--整理(考试用)--120418.doc VIP
- 儿童绘本故事《三只小猪盖房子》PPT课件(带动画).ppt
- 高一地理第二学期期中考试试卷江苏教育版.docx VIP
- 劳动与社会保障法习题(1).doc VIP
- 劳动与社会保障法习题.docx VIP
- 《基于核心素养语文教学中弘扬优秀传统文化的研究》课题立项申报书.docx VIP
- 浙江衢州市常山粮食收储有限责任公司招聘笔试题库2024.pdf
- 创意思维在设计中的参与方式之三横向思维法.ppt
- 江苏省南通市通州区十总镇公开招录12名工作人员高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 重型柴油车环保信息随车清单(推荐一).pdf
文档评论(0)