平成7年度 春期 第二種 午後 問12

                        [更新日]1995.05.22
問12 次のCOBOLプログラムの説明及びプログラムを読んで、 設問1、2に 答えよ。 [プログラムの説明] 輸入額等が記録された輸入ファイルから輸入レコードを読み込んで、 品目コード別に輸入額を集計し、集計ファイルに出力する。プログ ラムの仕様は、次の(1)〜(7)である。 (1) 輸入ファイルのレコード様式は、次のとおりである。     ┌─────┬─────┬────┬───┬──────┐     │輸入年月日|品目コード|国コード|輸入額|その他の情報|     | 6けた | 9けた | 3けた|9けた| 53けた |     └─────┴─────┴────┴───┴──────┘ (2) 集計ファイルのレコード様式は、次のとおりである。
    ┌─────┬────┐     |品目コード| 輸入額|     | 9けた |14けた|     └─────┴────┘
(3) 輸入ファイルは、輸入年月日の昇順に整列されている。 (4) 輸入ファイルには、1レコード以上の輸入データがあるものとする。 (5) 輸入ファイルの輸入額は、0より大きい整数とする。 (6) 輸入ファイルの輸入額を品目コードごとに集計した値は、14けた以 内とする。 (7) 集計ファイルは、品目コードの昇順に整列して出力する。 [プログラム] 01 DATA DIVISION. 02 FILE SECTION. 03 FD YUNYUU-F. 04 01 YUNYUU-R. 05 02 YUNYUU-YMD PIC X(06). 06 02 YUNYUU-HIN PIC X(09). 07 02 YUNYUU-KUN PIC X(03). 08 02 YUNYUU-GAK PIC 9(09). 09 02 PIC X(53). 10 FD SYUUKEI-F. 11 01 SYUUKEI-R. 12 01 02 SYUUKEI-HIN PIC X(09). 13 02 SYUUKEI-GAK PIC 9(14). 14 SD SEIRETU-F. 15 01 SEIRETU-R. 16 02 SEIRETU-HIN PIC X(09). 17 02 SEIRETU-GAK PIC 9(09). 18 WORKING-STORAGE SECTION. 19 01 FILE-END PIC 9(01) VALUE ZERO. 20 PROCEDURE DIVISION. 21 SEIRETU-RTN. 22 SORT SEIRETU-F 23 ON ASCENDING KEY SEIRETU-HIN 24 INPUT PROCEDURE IS KAKOU-RTN 25 OUTPUT PROCEDURE IS SYUUKEI-RTN. 26 STOP RUN. 27 KAKOU-RTN. 28 OPEN INPUT YUNYUU-F. 29 PERFORM UNTIL FILE-FLAG = 1 30 READ YUNYUU-F AT END 31 MOVE 1 TO FILE-END 32 NOT AT END 33 MOVE YUNYUU-HIN TO SEIRETU-HIN 34 MOVE YUNYUU-GAK TO SEIRETU-GAK 35[ a ] 36 END-READ 37 END-PERFORM. 38 CLOSE YUNYUU-F. 39 SYUUKEI-RTN. 40[ b ] 41 MOVE ZERO TO FILE-END. 42 RETURN SEIRETU-F AT END 43 MOVE 1 TO FILE-END 44 NOT AT END 45 MOVE SEIRETU-HIN TO SYUUKEI-HIN 46 MOVE SEIRETU-GAK TO SYUUKEI-GAK 47 END-RETURN. 48 PERFORM UNTIL FILE-END = 1 49 RETURN SEIRETU-F AT END 50 WRITE SYUUKEI-R 51 MOVE 1 TO FILE-END 52 NOT AT END 53 IF SEIRETU-HIN = SYUUKEI-HIN THEN 54 COMPUTE SYUUKEI-GAK = SYUUKEI-GAK + SEIRETU-GAK 55 ELSE 56 WRITE SYUUKEI-R 57 MOVE SEIRETU-HIN TO SYUUKEI-HIN 58 MOVE SEIRETU-GAK TO SYUUKEI-GAK 59 END-IF 60 END-RETURN 61 END-PERFORM. 62 CLOSE SYUUKEI-F. 設問1 プログラム中の[ ]に入れる正しい答えを、解答群の中から選べ。 aに関する解答群 ア ACCEPT SEIRETU-R イ DISPLAY SEIRETU-R ウ MOVE 0 TO FILE-END エ PERFORM SYUUKEI-RTN オ READ SEIRETU-F カ RELEASE SEIRETU-R キ RETURN SEIRETU-F ク WRITE SEIRETU-R b に関する解答群 ア INITIALIZE SYUUKEI-HIN イ INITIALIZE SYUUKEI-GAK ウ MOVE SPACE TO SYUUKEI-R エ MOVE ZERO TO SYUUKEI-R オ OPEN INPUT SYUUKEI-F カ OPEN OUTPUT SYUUKEI-F キ PERFORM KAKOU-RTN ク PERFORM SEIRETU-RTN 設問2 次の記述中の[ ]に入れる正しい答えを、解答群の中から 選べ。 プログラムの仕様を次のように変更したい。 (1) 集計ファイルのレコード様式は、次の通りである。 ┌────┬─────┬────┐ │国コード│品目コード│ 輸入額│ │ 3けた│  9けた│14けた│ └────┴─────┴────┘ (2) 国コード別、品目コード別に輸入額を求め、集計ファイルに出力する。 (3) 集計ファイルは、国コード、品目コードの昇順に整列して出力する。 そのためには、プログラムを次のように修正すればよい。 (1) データ部での追加行は、次のとおりである。 11行と12行の間に 02 SYUUKEI-KUN PIC X(03). 15行と16行の間に 02 SEIRETU-KUN PIC X(03). (2) 23行目の ON ASCENDING KEY SEIRETU-HIN を[ c ]に変更 する。 (3) 53行目の IF SEIRETU-HIN = SYUUKEI-HIN THEN を[ d ]に 変更する。 (4) MOVE SEIRETU-KUN TO SYUUKEI-KUN を44行と45行の間及び 56行と57行の間に追加する。 (5) MOVE YUNYUU-KUN TO SEIRETU-KUNを[ e ]に追加する。 cに関する解答群 ア ON ASCENDING KEY SEIRETU-GAK イ ON ASCENDING KEY SEIRETU-GAK SEIRETU-HIN ウ ON ASCENDING KEY SEIRETU-GAK SEIRETU-KUN エ ON ASCENDING KEY SEIRETU-HIN SEIRETU-GAK オ ON ASCENDING KEY SEIRETU-HIN SEIRETU-KUN カ ON ASCENDING KEY SEIRETU-KUN キ ON ASCENDING KEY SEIRETU-KUN SEIRETU-GAK ク ON ASCENDING KEY SEIRETU-KUN SEIRETU-HIN dに関する解答群 ア IF SEIRETU-GAK = SYUUKEI-GAK THEN イ IF SEIRETU-KUN = SYUUKEI-KUN THEN ウ IF SEIRETU-HIN = SYUUKEI-HIN AND SEIRETU-KUN = SYUUKEI-KUN THEN エ IF SEIRETU-HIN = SYUUKEI-HIN OR SEIRETU-KUN = SYUUKEI-KUN THEN オ IF SEIRETU-HIN = SYUUKEI-HIN AND SEIRETU-GAK = SYUUKEI-GAK THEN カ IF SEIRETU-HIN = SYUUKEI-HIN OR SEIRETU-GAK = SYUUKEI-GAK THEN キ IF SEIRETU-KUN = SYUUKEI-KUN AND SEIRETU-GAK = SYUUKEI-GAK THEN ク IF SEIRETU-KUN = SYUUKEI-KUN OR SEIRETU-GAK = SYUUKEI-GAK THEN eに関する解答群 ア 30行と31行の間 イ 32行と33行の間 ウ 42行と43行の間 エ 44行と45行の間 オ 49行と50行の間 カ 54行と55行の間 キ 55行と56行の間 ク 56行と57行の間
戻る 次頁:問13