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

                        [更新日]1995.10.25
問12 のCOBOLプログラムの説明及びプログラムを読んで、設問1、2に答えよ。 [プログラムの説明]  販売統計が記録された統計ファイルから統計レコードを読み込んで、大分類コード 別に販売数量、販売額を集計し印字する。プログラムは、次の(1)〜(7)の仕様のとおり 作成しようとしたが、誤りを含んでいる。 (1) 統計ファイルのレコード様式は、次のとうりである。 ┌───┬───┬───┬──────┬─────┬───────┐ │大分類│中分類│小分類│ 販売数量 │ 販売額 │その他の情報 │ │コード│コード│コード│      │     │       │ │   │   │   │      │     │       │ │3けた│3けた│3けた│  7けた │ 9けた │  25けた │ └───┴───┴───┴──────┴─────┴───────┘ (2) 統計ファイルは、大分類コード、中分類コード、小分類コードの昇順に整列され ている。 (3) 統計ファイルの販売数量及び販売額は、0より大きい整数とする。 (4) 統計ファイルには、1レコード以上の統計データがあるものとする。 (5) 統計ファイルの販売数量をすべて集計した値は、15けた以内とする。 (6) 統計ファイルの販売額をすべて集計した値は、15けた以内とする。 (7) 印字は次のように行なう。 1. 印字様式は、次のとおりである。 ┌──────────────────────────────────────────┐ │ダイブンルイ       ハンバイスウリョウ              ハンバイガク│ │XXX    ZZZ,ZZZ,ZZZ,ZZ9 ZZZ,ZZZ,ZZZ,ZZZ,ZZ9│ │XXX    ZZZ,ZZZ,ZZZ,ZZ9 ZZZ,ZZZ,ZZZ,ZZZ,ZZ9│ │XXX    ZZZ,ZZZ,ZZZ,ZZ9 ZZZ,ZZZ,ZZZ,ZZZ,ZZ9│ │ :            :                 :         │ │XXX    ZZZ,ZZZ,ZZZ,ZZ9 ZZZ,ZZZ,ZZZ,ZZZ,ZZ9│ │ケイ     ZZZ,ZZZ,ZZZ,ZZ9 ZZZ,ZZZ,ZZZ,ZZZ,ZZ9│ └──────────────────────────────────────────┘ 2. 印字は、大分類コードごとに販売数量及び販売額を集計し印字する。印字の最 後には、販売数量と販売額の合計を印字する。 3. 見出しの印刷は、各ページごとに行なう。 4. 1ページの印字は、見出し印字行を除き、25行とする。 [プログラム]   このプログラムは不完全である。その詳細については、設問1を参照のこと。 01 DATA DIVISION. 02 FILE SECTION. 03 FD TOUKEI-F. 04 01 TOUKEI-R. 05 02 TOUKEI-1 PIC X(03). 06 02 PIC X(06). 07 02 TOUKEI-SU PIC 9(07). 08 02 TOUKEI-GA PIC 9(09). 09 02 PIC X(25). 10 FD PRINT-F. 11 01 PRINT-R PIC X(46). 12 WORKING-STORAGE SECTION. 13 01 FLG-FILE PIC 9(01) VALUE ZERO. 14 01 PRINT-LINE PIC 9(02) VALUE 25. 15 01 L PIC 9(01). 16 01 PRINT1. 17 02 PIC X(08) VALUE "ダイブンルイ". 18 02 PIC X(06) VALUE SAPCE. 19 02 PIC X(11) VALUE "ハンバイスウリョウ". 20 02 PIC X(12) VALUE SAPCE. 21 02 PIC X(09) VALUE "ハンバイガク". 22 01 PRINT2. 23 02 PRINT2-1 PIC X(03). 24 02 PIC X(07) VALUE SPACE. 25 02 PRINT2-SU PIC ZZZ,ZZZ,ZZZ,ZZ9. 26 02 PIC X(02) VALUE SPACE. 27 02 PRINT2-GA PIC ZZZ,ZZZ,ZZZ,ZZZ,ZZ9. 28 01 WORK-TOTAL. 29 02 OCCURS 2 TIMES. 30 03 WORK-SU PIC 9(12). 31 03 WORK-GA PIC 9(15). 32 PROCEDURE DIVISION. 33 MAIN-RTN. 34 OPEN INPUT TOUKEI-F OUTPUT PRINT-F. 35 INITIALIZE WORK-TOTAL. 36 READ TOIKEI-F AT END 37 MOVE 1 TO FLG-FILE 38 NOT AT END 39 MOVE TOUKEI-1 TO PRINT2-1 40 END READ. 41 PERFORM UNTIL FLG-FILE = 1 42 IF TOUKEI-1 = PRINT2-1 THEN 43 COMPUTE WORK-SU (1) = WORK-SU (1) + TOUKEI-SU 44 COMPUTE WORK-GA (1) = WORK-GA (1) + TOUKEI-GA 45 ELSE 46 MOVE 2 TO L 47 PERFORM PRINT-RTN 48 MOVE TOUKEI-1 TO PRINT2-1 49 MOVE TOUKEI-SU TO WORK-SU (1) 50 MOVE TOUKEI-GA TO WORK-GA (1) 51 END-IF 52 READ TOUKEI-F AT END 53 MOVE 1 TO FLG-FILE 54 PERFORM PRINT-RTN VARYING L FROM 1 BY 1 UNTIL L > 2 55 END-READ 56 END-PERFORM. 57 CLOSE TOUKEI-F PRINT-F. 58 STOP RUN. 59 PRINT-RTN. 60 IF PRINT-LINE > 25 THEN 61 WRITE PRINT-R FROM PRINT1 AFTER PAGE 62 MOVE ZERO TO PRINT-LINE 63 END-IF. 64 COMPUTE PRINT-LINE = PRINT-LINE + 1. 65 IF L = 1 THEN 66 COMPUTE WORK-SU (2) = WORK-SU (2) + WORK-SU (1) 67 COMPUTE WORK-GA (2) = WORK-GA (2) + WORK-GA (1) 68 ELSE 69 MOVE "ケイ" TO PRINT2-1 70 END-IF. 71 MOVE WORK-SU (L) TO PRINT2-SU. 72 MOVE WORK-GA (L) TO PRINT2-GA. 73 WRITE PRINT-R FROM PRINT2 AFTER 2. 設問1 次の記述の[ ]に入れる正しい答を、解答群の中から選べ。     このプログラムは、プログラム仕様を満たしていない。プログラムを仕様ど    おりにするためには、[ a ]し、[ b ]する。 解答群  ア 46行目を MOVE 1 TO Lに変更  イ 48行目を 46行と 47行の間に移動  ウ 49行目を MOVE TOUKEI-SU TO WORK-SU (2)に変更し、    50行目を MOVE TOUKEI-GA TO WORK-GA (2)に変更  エ 54行目を PERFORM PRINT-RTNに変更  オ 60行目を IF PRINT-LINE >= 25 THENに変更  カ 62行目を MOVE 1 TO PRINT-LINEに変更  キ 64行目を COMPUTE PRINT-LINE = PRINT-LINE + 2.に変更  ク 66行目を COMPUTE WORK-SU (1) = WORK-SU (1) + WORK-SU (2)に変更し、    67行目を COMPUTE WORK-GA (1) = WORK-GA (1) + WORK-GA (2)に変更  ケ 73行目を WRITE PRINT-R AFTER 2.に変更 設問2 プログラムが直ったものとして、次の記述の[ ]に入れる正しい答    えを、解答群の中から選べ。     印字中に大分類名称を入れるために、プログラム仕様を次のように変更した    い。    1. 大分類名称ファイルのレコード様式は、次のとおりである。 ┌──────┬───────────┐ │大分類コード│   大分類名称   │ │ 3けた  │    15けた   │ └──────┴───────────┘    2. 大分類名称ファイルは、大分類コードを索引キーとする索引編成ファイ    ルとする。    3. 大分類名称ファイルに該当する大分類コードがない場合は、大分類名称の    代わりに空白を印字する。    4. 印字様式は、次のとおりである。 ┌──────────────────────────────────────────────────────────┐ │ダイブンルイ コード・メイショウ             ハンバイスウリョウ              ハンバイガク│ │XXX    XXXXXXXXXXXXXXX ZZZ,ZZZ,ZZZ,ZZ9 ZZZ,ZZZ,ZZZ,ZZZ,ZZ9│ │XXX    XXXXXXXXXXXXXXX ZZZ,ZZZ,ZZZ,ZZ9 ZZZ,ZZZ,ZZZ,ZZZ,ZZ9│ │XXX    XXXXXXXXXXXXXXX ZZZ,ZZZ,ZZZ,ZZ9 ZZZ,ZZZ,ZZZ,ZZZ,ZZ9│ │ :            :               :                 :         │ │XXX    XXXXXXXXXXXXXXX ZZZ,ZZZ,ZZZ,ZZ9 ZZZ,ZZZ,ZZZ,ZZZ,ZZ9│ │ケイ                     ZZZ,ZZZ,ZZZ,ZZ9 ZZZ,ZZZ,ZZZ,ZZZ,ZZ9│ └──────────────────────────────────────────────────────────┘    そのためには、プログラムを次のように修正すればよい。    (1) データ部では、プログラムを次のように修正すればよい。    1. 9行と10行の間に次の4行を追加する。       FD BUNRUI-F.       01 BUNRUI-R.        02 BUNRUI-1 PIC X(03).        02 BUNRUI-NAME PIC X(15).    2. 11行目を01 PRINT-R PIC X(62).に変更する。    3. 18行目を次の2行に置き換える。        02 PIC X(11) VALUE "コード・メイショウ".        02 PIC X(11) VALUE SPACE.    4. 24行目を次の3行に置き換える。        02 PIC X(06) VALUE SPACE.        02 PRINT2-NAME PIC X(15).        02 PIC X(02) VALUE SPACE.    (2) 34行目を[ c ]に変更する。    (3) 39行目と48行目を MOVE TOUKEI-1 TO PRINT2-1 BUNRUI-1に変更する。    (4) 57行目を CLOSE BUNRUI-F TOUKEI-F PRNIT-F.に変更する。    (5) [ d ]に次の5行を追加する。        [ e ]        MOVE SPACE TO PRINT2-NAME        NOT INVALID KEY        MOVE BUNRUI-NAME TO PRINT2-NAME        END-READ    (6) 69行と70行の間に MOVE SPACE TO PRINT2-NAMEを追加する。 cに関する解答群  ア OPEN INPUT BUNRUI-F.  イ OPEN INPUT BUNRUI-F OUTPUT PRNIT-F.  ウ OPEN INPUT BUNRUI-F OUTPUT PRNIT-F TOUKEI-F.  エ OPEN INPUT BUNRUI-F PRNIT-F TOUKEI-F.  オ OPEN INPUT BUNRUI-F TOUKEI-F OUTPUT PRNIT-F.  カ OPEN INPUT TOUKEI-F OUTPUT BUNRUI-F PRNIT-F. dに関する解答群  ア 40行と41行の間 イ 41行と42行の間 ウ 46行と47行の間  カ 55行と56行の間 キ 67行と68行の間 ク 70行と71行の間 eに関する解答群  ア READ BUNRUI-F  イ READ BUNRUI-F AT END  ウ READ BUNRUI-F INVALID KEY エ READ TOUKEI-F  オ READ TOUKEI-F AT END  カ READ TOUKEI-F INVALID KEY
戻る 次頁:問13