[更新日]1998.05.15
問12 次の COBOL プログラムの説明及びプログラムを読んで,設問 1,2 に答えよ。
〔プログラムの説明〕
ある地域の野球チームと選手を管理するファイルとして,チームマスタ ファイルと選手マスタファイルがある。トランザクションファイルの更新 フラグに従って,選手の登録又は削除を行う。
(1) チームマスタファイル TEAM-M のレコード様式は,次のとおりである。
チームコード
4 けた
選手数
3 けた
チーム情報
50 けた
チームコードをキーとする索引ファイルである。
選手数には,チームに所属する選手の人数が記録されている。
(2) 選手マスタファイル PLAYER-M のレコード様式は,次のとおりである。
選手コード
選手情報
選手コードをキーとする索引ファイルである。
一人の選手が,複数のチームに所属することはない。
(3) トランザクションファイル TRAN-F のレコード様式は,次のとおりで ある。
更新
フラグ
1 けた
選手データ
更新フラグが“I”のとき,選手マスタファイルへ選手を登録する。 このとき,選手マスタファイルレコードには,トランザクションレコードの 選手データの内容を追加し,チームマスタファイルに対しては,当該チームの 選手数を 1 増やす。
更新フラグが“D”のとき,選手マスタファイルから選手を削除する。 チームマスタファイルに対しては,当該チームの選手数を 1 減らす。
(4) チームマスタファイル,選手マスタファイルのデータはすべて チェック済みで,整合がとれている。
〔プログラム〕 (行番号) 01 DATA DIVISION. 02 FILE SECTION. 03 FD TEAM-M. 04 01 TEAM-R. 05 03 T-TEAM PIC X(4). 06 03 T-NUM PIC 9(3). 07 03 T-INFO PIC X(50). 08 FD PLAYER-M. 09 01 PLAYER-R. 10 03 P-CODE PIC X(4). 11 03 P-TEAM PIC X(4). 12 03 P-INFO PIC X(50). 13 FD TRAN-F. 14 01 TRAN-R. 15 03 TR-FLAG PIC X(1). 16 03 TR-PLAYER-DATA. 17 05 TR-CODE PIC X(4). 18 05 TR-TEAM PIC X(4). 19 05 TR-INFO PIC X(50). 20 WORKING-STORAGE SECTION. 21 01 END-SW PIC X(3) VALUE "OFF". 22 01 P-SW PIC X(3). 23 01 T-SW PIC X(3). 24 PROCEDURE DIVISION. 25 HAJIME. 26 OPEN INPUT TRAN-F I-O TEAM-M PLAYER-M. 27 READ TRAN-F AT END MOVE "ON" TO END-SW. 28 PERFORM UNTIL END-SW = "ON" 29 PERFORM P-READ-RTN 30 PERFORM T-READ-RTN 31 EVALUATE P-SW ALSO TR-FLAG ALSO T-SW 32 WHEN "OFF" ALSO "I" ALSO "ON" 33 PERFORM I-RTN 34 WHEN "ON" ALSO "D" ALSO "ON" 35 PERFORM D-RTN 36 WHEN OTHER 37 DISPLAY "OTHER-ERROR:" TRAN-R 38 END-EVALUATE 39 READ TRAN-F AT END MOVE "ON" TO END-SW 40 END-READ 41 END-PERFORM. 42 CLOSE TRAN-F TEAM-M PLAYER-M. 43 STOP RUN. 44 P-READ-RTN. 45 MOVE TR-CODE TO P-CODE. 46 READ PLAYER-M INVALID MOVE "OFF" TO P-SW 47 NOT INVALID MOVE "ON" TO P-SW. 48 T-READ-RTN. 49 MOVE TR-TEAM TO T-TEAM. 50 READ TEAM-M INVALID DISPLAY "T-RD-ERROR:" 51 MOVE "OFF" TO T-SW 52 NOT INVALID MOVE "ON" TO T-SW. 53 I-RTN. 54 MOVE TR-PLAYER-DATA TO PLAYER-R. 55 WRITE PLAYER-R INVALID DISPLAY "I-ERROR:" TRAN-R 56 NOT INVALID PERFORM NUM-RTN. 57 D-RTN. 58 IF TR-TEAM = P-TEAM 59 MOVE TR-CODE TO P-CODE 60 DELETE PLAYER-M INVALID DISPLAY "D-ERROR:" TRAN-R 61 NOT INVALID PERFORM NUM-RTN 62 END-DELETE 63 ELSE 64 DISPLAY "TR-TEAM-ERROR:" TRAN-R. 65 NUM-RTN. 66 IF TR-FLAG = "I" THEN 67 COMPUTE T-NUM = T-NUM + 1 68 ELSE 69 COMPUTE T-NUM = T-NUM - 1. 70 REWRITE TEAM-R INVALID DISPLAY "NUM-ERROR:" TRAN-R.
設問1 それぞれのファイルのデータが図に示すとおりであった。このとき, DISPLAY 文によって表示されるメッセージとして正しい答えを,解答群の中 から選べ。
図 各ファイルのデータ
解答群
ア I-ERROR:I0002A001 … イ I-ERROR:I0002A001 …
D-ERROR:D0010B002 … OTHER-ERROR:D0010B002 …
D-ERROR:D0011B003 … OTHER-ERROR:D0011B003 …
D-ERROR:D0012B001 … D-ERROR:D0012B001 …
ウ OTHER-ERROR:I0002A001 … エ OTHER-ERROR:I0002A001 …
OTHER-ERROR:D0010B002 … T-RD-ERROR:
OTHER-ERROR:D0011B003 … OTHER-ERROR:D0010B002 …
OTHER-ERROR:D0012B001 … TR-TEAM-ERROR:D0011B003 …
OTHER-ERROR:D0012B001 …
オ OTHER-ERROR:I0002A001 … カ OTHER-ERROR:I0002A001 …
T-RD-ERROR:D0010B002 … T-RD-ERROR:D0011B003 …
TR-TEAM-ERROR:D0011B003 … TR-TEAM-ERROR:
OTHER-ERROR:D0012B001 … OTHER-ERROR:D0011B003 …
設問2 次に示す機能を追加するために,プログラムを変更する。 変更内容を示す表中の に入れる正しい答えを,解答群の中から選べ。
更新フラグが“U”のとき,選手の所属チームを変更できるようにする。 すなわち,選手マスタファイルの所属チームをトランザクションレコードの チームコードに変更する。このとき選手情報は変更しない。チームマスタ ファイルに対しては,旧所属チームの選手数を 1 減らし,新所属チームの 選手数を 1 増やす。
表 機能追加のための変更内容
処理
文
ア AT END イ "I" ウ INVALID
エ NOT AT END オ NOT INVALID カ P-TEAM
キ T-TEAM ク TR-CODE ケ TR-TEAM
コ "U"