COBOL培训教程11.ppt

上传人:夺命阿水 文档编号:236228 上传时间:2023-03-10 格式:PPT 页数:11 大小:316.50KB
返回 下载 相关 举报
COBOL培训教程11.ppt_第1页
第1页 / 共11页
COBOL培训教程11.ppt_第2页
第2页 / 共11页
COBOL培训教程11.ppt_第3页
第3页 / 共11页
COBOL培训教程11.ppt_第4页
第4页 / 共11页
COBOL培训教程11.ppt_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《COBOL培训教程11.ppt》由会员分享,可在线阅读,更多相关《COBOL培训教程11.ppt(11页珍藏版)》请在课桌文档上搜索。

1、COBOL培训教程(十一),排序与合并,排序的概念:在COBOL中称排序项为“排序键”。所谓“键”,指的是“关键字”,即按哪个关键字作为排序的依据。除了指定“排序键”以外,还要指出是按升序还是按降序排列。实现排序的步骤:(1)建立排序中间工作文件:将输入文件中的记录依次输入到中间工作文件中,直到全部输完为止。(2)对排序中间文件的各记录,按指定的排序键和升降序进行排序。排序由计算机自动进行。排序的对象是中间文件,不是输入文件。(3)将排好序的中间文件输出,由于中间文件是程序为了排序而临时建立的文件,当程序运行结束后,该文件被撤销,所以要输出到其它介质上。,排序的概念与步骤,由于排序需要三个文件

2、,所以在环境部中要分别对三个文件进行描述。在数据部中,要对每一个文件进行数据描述。输入输出文件的描述不变。排序中间文件的描述体以SD开头。不必指定LABEL RECORD IS STANDARD,也不用组块。例:SD SORT-WORK-FILE DATA RECORD IS SORT-REC 过程部中主要是SORT语句。,COBOL中与排序有关的成分,例:IDENTIFICATION DIVISION.PROGRAM-ID.EXAM11-1.ENVIROMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT IN-FILE ASSIGN

3、TO IN-FILE.SELECT SORT-WORK-FILE ASSIGN TO SW.SELECT SORTED-FILE ASSIGN TO S-FILE.DATA DIVISION.FILE SECTION.FD IN-FILE LABEL RECORD IS STANDARD DATA RECORD IS INREC.01 INREC.02 YY-MM-DD PIC 9(6).02 CUSTOMER-NUM PIC 9(8).02 PRODUCT-CODE PIC X(6).02 QTY PIC 9(6).02 AMOUNT PIC 9(8)V99.,SD SORT-WORK-FI

4、LE.01 WORKREC.02 YY-MM-DD-S PIC 9(6).02 CUSTOMER-NUM-S PIC 9(8).02 PRODUCT-CODE-S PIC X(6).02 QTY-S PIC 9(6).02 AMOUNT-S PIC 9(8)V99.FD SORTED-FILE LABEL RECORD IS STANDARD.01 SORTEDREC PIC X(80).PROCEDURE DIVISION.SORTING.SORT SORT-WORK-FILE ON ASCENDING KEY CUSTOMER-NUM-S YY-MM-DD-S ON DESCENDING

5、KEY AMOUNT-S USING IN-FILE GIVING SORTED-FILE.STOP RUN.,SORT语句的第一种形式(一),注意:不必在过程部中打开或关闭,输入输出文件,它们是自动实现的。作为排序的项不能含OCCURS项,也不能从属于含有OCCURS子句的数据项。排序项可以是组合项,但几个排序项之间不能互相重叠。输入文件和输出文件必须是顺序文件。三个文件的记录区长度一定要相等。SORT语句的一般格式1为:ASCENDING SORT 排序中间文件名 ON KEY 数据名1,数据名2 DESCENDING ASCENDING ON KEY 数据名3,数据名4 DESCENDI

6、NG USING 输入文件名 GIVING 输出文件名,SORT语句的第一种形式(二),如果需要对输入的记录进行某些加工,然后再按指定的某些数据项的顺序排列,则需使用SORT语句的第二种形式。这种排序中要用到的两个辅助语句:RELEASE语句:把记录从内存中送到排序中间文件中去。它的作用相当于WRITE语句。但在这里只能用RELEASE语句。一般格式:RELEASE 记录名 FROM 标识符 RETURN语句:从排序中间文件读回一个记录到内存。相当于READ语句。一般形式:RETURN 排序中间文件名 RECORD INTO标识符;AT END 强制语句,SORT语句的第二种形式(一),例:I

7、DENTIFICATION DIVISION.PROGRAM-ID.EXAM11-2.ENVIROMENT DIVISION.INPUT-OUTPUT SECTION.FILE-CONTROL.SELECT IN-FILE ASSIGN TO IN-FILE.SELECT SORTFILE ASSIGN TO SW.SELECT DAFILE ASSIGN TO DA-FILE.SELECT OUTFILE ASSIGN TO OUT-FILE.DATA DIVISION.FILE SECTION.FD INFILE LABEL RECORD IS STANDARD DATA RECORD I

8、S INREC.01 INREC.02 WORKING-NUM PIC 9(6).02 SHOP-NUM PIC 9(2).02 ACTUAL-HOURS PIC 9(3)V9.02 OVERTIME PIC 9(3)V9.SD SORTFILE.01 SORTREC.02 WORKING-NUM PIC 9(6).02 SHOP-NUM PIC 9(2).02 ACTUAL-HOURS PIC 9(3)V9.02 OVERTIME PIC 9(3)V9.,FD DAFILE LABEL RECORD IS STANDARD.01 DAREC.02 WORKING-NUM PIC 9(6).0

9、2 SHOP-NUM PIC 9(2).02 ACTUAL-HOURS PIC 9(3)V9.02 OVERTIME PIC 9(3)V9.FD OUTFILE LABEL RECORD IS STANDARD.01 OUTREC.02 FILLER PIC X(4).02 WORKING-NUM PIC 9(6).02 FILLER PIC X(4).02 SHOP-NUM PIC 9(2).02 FILLER PIC X(4).02 ACTUAL-HOURS PIC Z(3)V9.02 FILLER PIC X(4).02 OVERTIME PIC Z(3)V9.PROCEDURE DIV

10、ISION.MAIN-PROC SECTION.SORT-PROC.SORT SORTFILE ASCENDING KEY SHOP-NUM OF SORTREC DESCENDING KEY OVERTIME OF SORTREC INPUT PROCEDURE IS RECORD-SELECTION OUTPUT PROCEDURE IS OUT.STOP RUN.,RECORD-SELECTION SECTION.OPEN INPUT INFILE.S-PROC.READ INFILE AT END CLOSE INFILE GO TO S-END.IF OVERTIME OF INFI

11、LE NOT 20.0 MOVE CORR INREC TO SORTREC RELEASE SORTREC.GO TO S-PROC.S-END.EXIT.OUT SECTION.OPEN OUTPUT DAFILE,OUTFILE.RETURN-PROC.RETURN SORTFILE AT END CLOSE DAFILE,OUTFILE GO TO OUT-END.MOVE SPACE TO OUTREC.MOVE CORR SORTREC TO OUTREC.WRITE OUTREC AFTER 2.IF OVERTIME OF SORTREC NOT 60.0 WRITE DARE

12、C FROM SORTREC.GO TO RETURN-PROCOUT-END.EXIT.,SORT语句的第二种形式(二),注意:“输入过程”和“输出过程”都必须指定节名。在“输入过程”中可以对尚待排序的记录进行加工,甚至可以改变排序键值;排序好以后可以对记录进行加工。“输入/输出过程”中的语句只能在本过程中控制转移,不能跳出本过程范围之外,也不能从本过程以外转入。SORT语句的一般格式2为:ASCENDING SORT 排序中间文件名 ON KEY 数据名1,数据名2 DESCENDING ASCENDING ON KEY 数据名3,数据名4 DESCENDING INPUT PROCEDU

13、RE IS 节名1 THRU 节名2 OUTPUT PROCEDURE IS 节名3 THRU 节名4,SORT语句的第二种形式(三),如果有一组已按相同的排序原则排好序的文件,要求将它们合并成为一个文件,这叫“合并”。MERGE语句的一般格式为:ASCENDING MERGE 文件名1 ON KEY 数据名1,数据名2 DESCENDING ASCENDING ON KEY 数据名3,数据名4 DESCENDING USING 文件名2,文件名3 GIVING文件名4,MERGE语句(一),例:MERGE MERGE-WORK-FILE DESCENDING KEY IS AVGE USING GRADE-FILE1,GRADE-FILE2,GRADE-FILE3 GIVING GRADE-FILE-ALL.说明:MERGE语句中各成分的含义于SORT语句中的基本相同。但合并的文件必须已经按照同样的排序要求完成了排序。MERGE语句不能用输入过程,只能用USING。输入文件的个数不得小于两个。“文件名1”是排序合并的中间工作文件,应在数据部中的排序文件描述体中描述。各输入文件和输出文件,排序中间工作文件的记录区大小应该相同。,MERGE语句(二),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号