問8 次の COBOL プログラムの説明及びプログラムを読んで,設問に答えよ。
〔プログラムの説明〕
店舗別,部門別に部門販売額を登録した販売ファイルから,部門ごとに部門販売額の 大きい順に順位を付け,販売成績ファイルを作成する。
(1) 販売ファイルのレコード様式は,次のとおりである。
各店舗には,部門 A〜E の 5 部門がある。
販売ファイル中に同一の店舗コードをもつレコードは,ないものとする。
部門販売額は,9 けたを超えないものとする。
販売ファイルのレコード数は,9,999 件以下とする。
(2) 販売成績ファイルのレコード様式は,次のとおりである。
各部門の部門順位は,各店舗の同一部門の部門販売額の大きい順に 1 から付ける。
部門販売額が同一の店舗が複数ある 場合は,同じ部門順位とする。同じ部門順位を付けた後の順位は,それまでに順位を つけた店舗数より 1 だけ大きい数とする。
(3) 部門別の部門販売額の順位を求めるため,作業用のファイルを用いる。
〔プログラム〕
DATA DIVISION. FILE SECTION. FD HANBAI-FILE. 01 HANBAI-REC. 02 TENPO-HAN PIC X(05). 02 GAKU-HAN OCCURS 5 TIMES PIC 9(09). FD SEISEKI-FILE. 01 SEISEKI-REC. 02 TENPO-SEI PIC X(05). 02 BUMON-SEI OCCURS 5 TIMES. 03 BANGO-SEI PIC 9(04). 03 GAKU-SEI PIC 9(09). FD BANGO-FILE. 01 BANGO-REC. 02 TENPO-BAN PIC X(05). 02 BUMON-BAN PIC 9(01). 02 BANGO-BAN PIC 9(04). 02 GAKU-BAN PIC 9(09). SD SORT-FILE. 01 SORT-REC. 02 TENPO-SOR PIC X(05). 02 BUMON-SOR PIC 9(01). 02 BANGO-SOR PIC 9(04). 02 GAKU-SOR PIC 9(09). WORKING-STORAGE SECTION. 01 FILE-END PIC 9(01) VALUE ZERO. 01 LCN PIC 9(01). 01 X PIC 9(04). 01 Y PIC 9(04). 01 GAKU-WRK PIC 9(09). PROCEDURE DIVISION. SORT-RTN. SORT SORT-FILE ON ASCENDING KEY BUMON-SOR DESCENDING KEY GAKU-SOR INPUT PROCEDURE IS BUNKAI-RTN OUTPUT PROCEDURE IS BANGO-RTN. SORT SORT-FILE ON ASCENDING KEY USING BANGO-FILE OUTPUT PROCEDURE IS MATOME-RTN. STOP RUN. BUNKAI-RTN. OPEN INPUT HANBAI-FILE. PERFORM UNTIL FILE-END = 1 READ HANBAI-FILE AT END MOVE 1 TO FILE-END NOT AT END PERFORM VARYING LCN FROM 1 BY 1 UNTIL LCN > 5 MOVE TENPO-HAN TO TENPO-SOR MOVE LCN TO BUMON-SOR MOVE GAKU-HAN (LCN) TO GAKU-SOR END-PERFORM END-READ END-PERFORM. CLOSE HANBAI-FILE. BANGO-RTN. OPEN OUTPUT BANGO-FILE. MOVE ZERO TO FILE-END LCN. PERFORM UNTIL FILE-END = 1 RETURN SORT-FILE AT END MOVE 1 TO FILE-END NOT AT END MOVE SORT-REC TO BANGO-REC IF LCN = BUMON-SOR THEN COMPUTE X = X + 1 IF GAKU-WRK > GAKU-SOR THEN MOVE GAKU-SOR TO GAKU-WRK END-IF MOVE Y TO BANGO-BAN ELSE MOVE GAKU-SOR TO GAKU-WRK MOVE BUMON-SOR TO LCN MOVE 1 TO X Y BANGO-BAN END-IF WRITE BANGO-REC END-RETURN END-PERFORM. CLOSE BANGO-FILE. MATOME-RTN. OPEN OUTPUT SEISEKI-FILE. MOVE ZERO TO FILE-END. RETURN SORT-FILE AT END MOVE 1 TO FILE-END NOT AT END MOVE TENPO-SOR TO TENPO-SEI END-RETURN. PERFORM UNTIL FILE-END = 1 MOVE BANGO-SOR TO BANGO-SEI ( ) MOVE GAKU-SOR TO GAKU-SEI ( ) RETURN SORT-FILE AT END WRITE SEISEKI-REC MOVE 1 TO FILE-END NOT AT END IF THEN WRITE SEISEKI-REC MOVE TENPO-SOR TO TENPO-SEI END-IF END-RETURN END-PERFORM. CLOSE SEISEKI-FILE.
設問 プログラム中の に入れる正しい答えを,解答群の中から選べ。
a,d に関する解答群
ア BANGO-BAN イ BANGO-SOR ウ BUMON-BAN
エ BUMON-SOR オ GAKU-BAN カ GAKU-SOR
キ TENPO-BAN ク TENPO-SOR
b に関する解答群
ア MOVE BANGO-REC TO SORT-REC
イ MOVE GAKU-WRK TO GAKU-SOR
ウ READ SORT-FILE
エ RELEASE SORT-REC
オ RETURN SORT-FILE
カ WRITE SORT-REC
c に関する解答群
ア MOVE BUMON-SOR TO LCN イ MOVE LCN TO BUMON-SOR
ウ MOVE X TO BANGO-BAN エ MOVE X TO Y
オ MOVE Y TO BANGO-BAN カ MOVE Y TO X
e に関する解答群
ア TENPO-SEI = TENPO-BAN イ TENPO-SEI NOT = TENPO-BAN
ウ TENPO-SEI = TENPO-SOR エ TENPO-SEI NOT = TENPO-SOR
オ TENPO-SOR = TENPO-BAN カ TENPO-SOR NOT = TENPO-BAN