用CALL命令开启一个子程序的执行
COBOL for Mainframe FundamentalsCh8 子程序子程序nCOBOL 用CALL命令开启一个子程序的执行。n使用CALL命令的函数是主调函数,CALL后面跟被调函数的函数名。n一旦一个程序发出函数调用命令CALL,控制权就转移到被调函数,被调函数可以将控制权返回给主调函数,调用另一个子程序或者结束运行单元。CALL 语句n语法:CALL program-nameUSING BY REFERENCE|BY CONTENT parm-1 RETURNING parm-nON EXCEPTION statement-1NOT ON EXCEPTION statement-2END-CALL传递参数n主调函数:CALL program-nameUSING BY REFERENCE|CONTENT parm-1,parm-2,RETURNING parm-nparm1,parm2,在 FILE SECTION 或 WORKING-STORAGE SECTION里定义n被调函数:PROCEDURE DIVISION USING BY REFERENCE|CONTENT parm-1,parm-2,.RETURNING parm-nparm1,parm2,在 LINKAGE SECTION 里定义注:主调函数CALLUSING 子句 定义的参数个数必须与被调函数PROCEDURE DIVISION 头部里USING 子句 定义的参数个数相同。BY REFERENCEn主调函数与被调函数中的数据项共享同一块内存。n被调函数可以修改数据项内容。n缺省选项。BY CONTENTn被调函数占用局部存储空间,该空间存有主调函数传递给它的数据项。n主调函数可以修改,但被调函数不能修改数据项的内容。BY VALUEn主要用于和非COBOL程序通信。n类似于COBOL程序间的BY CONTENTS方式。三个终止语句nEXIT PROGRAM主函数:不发生任何行为。子程序:返回调用它的程序,不终止运行单元。nGOBACK主函数:返回调用函数(可能是返回操作系统,并结束本次作业)。子程序:返回调用程序。nSTOP RUNMain Program主程序:返回调用函数(可能是返回操作系统,并结束本次作业)。Subprogram子程序:立即返回调用主程序的程序。例 1MOVE REPORTA TO REPORT-PROGCALL REPORT-PROGON EXCEPTIONDISPLAY Program REPORTA notavailable,using REPORTB.MOVE REPORTB TO REPORT-PROGCALL REPORT-PROGEND-CALLEND-CALL 例 2n主程序WORKING-STORAGE SECTION.01 NUM1 PIC S9(4).01 NUM2 PIC S9(4).01 OUT1 PIC S9(6).CALL SUBPGM USING NUM1,NUM2RETURNING OUT1.DISPLAY OUT1.STOP RUNn 主程序LINKAGE SECTION.01 NUM1 PIC S9(4).01 NUM2 PIC S9(4).01 OUT1 PIC S9(6).PROCEDURE DIVISION USING NUM1,NUM2 RETURNING OUT1.ADD NUM1,NUM2 TO OUT1.EXIT PROGRAM.GLOBAL Usage用于全局n程序:PROGRAM-ID.program-name IS COMMON PROGRAM.n数据项:01 data-nameIS GLOBALother data-description entriesn文件FD file-nameIS GLOBALother file-description entires COPY 命令n语法:COPY membern例子:WORKING-STORAGE SECTIONCOPY F-AREA.在成员FRECORD中.01 WK-REC.05 USERIDPIC X(10).05 FILLERPIC X.05 PWDPIC X(10).9、静夜四无邻,荒居旧业贫。22.9.722.9.7Wednesday,September 07,202210、雨中黄叶树,灯下白头人。10:09:3210:09:3210:099/7/2022 10:09:32 AM11、以我独沈久,愧君相见频。22.9.710:09:3210:09Sep-227-Sep-2212、故人江海别,几度隔山川。10:09:3210:09:3210:09Wednesday,September 07,202213、乍见翻疑梦,相悲各问年。22.9.722.9.710:09:3210:09:32September 7,202214、他乡生白发,旧国见青山。2022年9月7日星期三上午10时9分32秒10:09:3222.9.715、比不了得就不比,得不到的就不要。2022年9月上午10时9分22.9.710:09September 7,202216、行动出成果,工作出财富。2022年9月7日星期三10时09分32秒10:09:327 September 202217、做前,能够环视四周;做时,你只能或者最好沿着以脚为起点的射线向前。上午10时9分32秒上午10时9分10:09:3222.9.79、没有失败,只有暂时停止成功!。22.9.722.9.7Wednesday,September 07,202210、很多事情努力了未必有结果,但是不努力却什么改变也没有。10:09:3210:09:3210:099/7/2022 10:09:32 AM11、成功就是日复一日那一点点小小努力的积累。22.9.710:09:3210:09Sep-227-Sep-2212、世间成事,不求其绝对圆满,留一份不足,可得无限完美。10:09:3210:09:3210:09Wednesday,September 07,202213、不知香积寺,数里入云峰。22.9.722.9.710:09:3210:09:32September 7,202214、意志坚强的人能把世界放在手中像泥块一样任意揉捏。2022年9月7日星期三上午10时9分32秒10:09:3222.9.715、楚塞三湘接,荆门九派通。2022年9月上午10时9分22.9.710:09September 7,202216、少年十五二十时,步行夺得胡马骑。2022年9月7日星期三10时09分32秒10:09:327 September 202217、空山新雨后,天气晚来秋。上午10时9分32秒上午10时9分10:09:3222.9.79、杨柳散和风,青山澹吾虑。22.9.722.9.7Wednesday,September 07,202210、阅读一切好书如同和过去最杰出的人谈话。10:09:3210:09:3210:099/7/2022 10:09:32 AM11、越是没有本领的就越加自命不凡。22.9.710:09:3210:09Sep-227-Sep-2212、越是无能的人,越喜欢挑剔别人的错儿。10:09:3210:09:3210:09Wednesday,September 07,202213、知人者智,自知者明。胜人者有力,自胜者强。22.9.722.9.710:09:3210:09:32September 7,202214、意志坚强的人能把世界放在手中像泥块一样任意揉捏。2022年9月7日星期三上午10时9分32秒10:09:3222.9.715、最具挑战性的挑战莫过于提升自我。2022年9月上午10时9分22.9.710:09September 7,202216、业余生活要有意义,不要越轨。2022年9月7日星期三10时09分32秒10:09:327 September 202217、一个人即使已登上顶峰,也仍要自强不息。上午10时9分32秒上午10时9分10:09:3222.9.7MOMODA POWERPOINTLorem ipsum dolor sit,eleifend nulla ac,fringilla purus.Nulla iaculis tempor felis amet,consectetur adipiscing elit.Fusce id urna blanditut cursus.感 谢 您 的 下 载 观 看感 谢 您 的 下 载 观 看专家告诉