東京理科大学 infoserv[更新日]2000.5.1


問12次の COBOL プログラムの説明及びプログラムを読んで, 設問 1,2 に答えよ。

〔プログラムの説明〕

ある会社の 1 か月分の売上記録から,販売数量表を作成する。

(1) 売上記録ファイル KIROKU-F のレコード様式は,次のとおりである。

月日

4 けた

曜日コード

1 けた

店コード

1 けた

分類コード

1 けた

数量

4 けた

その他

20 けた

 営業日は月曜から土曜で, 曜日コードには次に示す 1 〜 6 のいずれかが記録されている。

  月曜:1,火曜:2,水曜:3,木曜:4,金曜:5,土曜:6

 店舗は三つで,店コードには, 店番として 1 〜 3 のいずれかが記録されている。

 取扱商品は,次の五つに分類されており, 分類コードには,次に示す 1 〜 5 のいずれかが記録されている。
 カコウショクヒン:1,ソウザイ:2,セイカ:3,セイニク:4,センギョ:5

(2) 商品分類ごとの販売数量の曜日別合計(最大 6 けた)を求め,次のような一覧表を出力する。

ゼンテン
                     MON       TUE       WED       THU       FRI       SAT
コウショクヒン   ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9
ソウザイ         ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9
セイカ           ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9
セイニク         ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9
センギョ         ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9   ZZZ,ZZ9

〔プログラム〕

(行番号)
01 DATA DIVISION.
02 FILE SECTION.
03 FD  KIROKU-F.
04 01  KIROKU-R.
05     03            PIC X(4). 
06     03  K-YOBI    PIC 9(1).
07     03  K-MISE    PIC 9(1).
08     03  K-BUNRUI  PIC 9(1).
09     03  K-SURYO   PIC 9(4).
10     03            PIC X(20).
11 WORKING-STORAGE SECTION.
12 01  HYO VALUE ZERO.
13     03  H-BUNRUI  OCCURS 5 INDEXED BY H1.
14         05  H-YOBI  OCCURS 6 INDEXED BY H2 PIC 9(6). 
15 01  END-SW    PIC X(3) VALUE SPACE.
16 01  MIDASHI1  PIC X(5).
17 01  MIDASHI2.
18     03        PIC X(15) VALUE SPACE.
19     03        PIC X(53) VALUE
20      "MON       TUE       WED       THU       FRI       SAT".
21 01  BUNRUIHYO VALUE 
22     " カコウショクヒンソウザイ   セイカ   セイニク   センギョ".
23     03  M-BUNRUI OCCURS 5 INDEXED BY B1 PIC X(8).
24 01  MEISAI VALUE SPACE.
25     03  M-YOSO OCCURS 6 INDEXED BY M1.
26         05           PIC X(3).
27         05  M-SURYO  PIC ZZZ,ZZ9.
28 PROCEDURE DIVISION.
29 HAJIME.
30     OPEN INPUT KIROKU-F.
31     READ KIROKU-F AT END MOVE "END" TO END-SW.
32     PERFORM  UNTIL END-SW = "END"
33        SET H1 TO K-BUNRUI
34        SET H2 TO K-YOBI 
35        COMPUTE H-YOBI(H1 H2) =  H-YOBI(H1 H2) + K-SURYO
36        READ KIROKU-F AT END MOVE "END" TO END-SW END-READ
37     END-PERFORM.
38     MOVE "ゼンテン" TO MIDASHI1.
39     DISPLAY  MIDASHI1.
40     DISPLAY  MIDASHI2.
41     SET M1 B1 TO 1.
42     PERFORM  SHUTSURYOKU VARYING H1 FROM 1 BY 1 UNTIL H1 > 5
43                          AFTER   H2 FROM 1 BY 1 UNTIL H2 > 6.
44     CLOSE  KIROKU-F.
45     STOP RUN.
46 SHUTSURYOKU.
47     MOVE H-YOBI(H1 H2) TO M-SURYO(M1).
48     SET M1 UP BY 1.
49     IF H2 = 6  
50        DISPLAY M-BUNRUI(B1), MEISAI
51        MOVE SPACE TO MEISAI 
52        SET M1 TO 1
53        SET B1 UP BY 1
54     END-IF.
 
設問1   指標は表ごとに異なるものを設定して利用するが, 添字を用いると複数の表を共通の変数で参照できる。プログラム中に複数の表がある場合, 同じ位置を参照するものに関して指標の代わりに添字を使うとプログラムが簡単になる。 プログラム中の指標 H1,H2,B1及び M1を添字に置き換えることを考えた。 このとき共通の添字に置き換えることができる指標の組合せを,解答群の中から選べ。

解答群

ア H1 と B1    イ H1 と M1

ウ H2 と B1    エ H2 と M1

オ H1 と B1,H2 と M1    カ H1 と M1,H2 と B1

設問2   いつどこで何が売れたのかを見るために,曜日を指定して, 店舗別販売数量の合計を次の様式で出力するようにプログラムを修正する。

ヨウビ  9           
                   1ゴウテン  2ゴウテン  3ゴウテン
カコウショクヒン   ZZZ,ZZ9    ZZZ,ZZ9    ZZZ,ZZ9   
ソウザイ           ZZZ,ZZ9    ZZZ,ZZ9    ZZZ,ZZ9   
セイカ             ZZZ,ZZ9    ZZZ,ZZ9    ZZZ,ZZ9   
セイニク           ZZZ,ZZ9    ZZZ,ZZ9    ZZZ,ZZ9   
センギョ           ZZZ,ZZ9    ZZZ,ZZ9    ZZZ,ZZ9   

 修正内容を示す次の表中の に入れる正しい答えを,解答群の中から選べ。

表 機能追加のための修正内容
処理

12 行目の後に追加

     02 H-MISE OCCURS 3 INDEXED BY H0.

15 行目の後に追加

 

18〜20 行目を置換

     03 PIC X(12) VALUE SPACE.
     03 PIC X(26) VALUE 
       "1ゴウテン  2ゴウテン  3ゴウテン".

35 行目を置換

     SET H0 TO K-MISE
     COMPUTE   =  + K-SURYO

38〜43 行目を置換

    MOVE "ヨウビ" TO MIDASHI1 
    PERFORM UNTIL SHIJI-X = "Q"
       DISPLAY   "NYURYOKU YOBI "
       ACCEPT SHIJI-X
       EVALUATE SHIJI-X 
          WHEN "1" THRU "6"
              DISPLAY   MIDASHI1, SHIJI-X
              DISPLAY   MIDASHI2
              SET H2 TO SHIJI-9
              SET M1 B1 TO 1
                
          WHEN "Q" CONTINUE
          WHEN OTHER DISPLAY "TEISEI YOBI"
       END-EVALUATE
    END-PERFORM.

47 行目を置換

     MOVE  TO M-SURYO(M1).

49 行目を置換

     IF H0 = 3

a に関する解答群

   ア 01 SHIJI.
          02 SHIJI-X PIC X VALUE ZERO. 
          02 SHIJI-9 PIC 9 VALUE 0. 
 
   イ 01 SHIJI-X PIC X VALUE ZERO.
       01 SHIJI-9 PIC 9 VALUE 0. 
 
   ウ 01 SHIJI-X PIC X VALUE ZERO.
       01 SHIJI-9 REDEFINES SHIJI-X PIC 9. 

   エ 01 SHIJI-9.
          02 SHIJI-X PIC X VALUE ZERO. 

b に関する解答群
   ア H-YOBI(H0 H1 H2)    イ H-YOBI(H0 H2 H1)
   ウ H-YOBI(H1 H0 H2)    エ H-YOBI(H1 H2 H0)

c に関する解答群
   ア PERFORM  SHUTSURYOKU
         VARYING H0 FROM 1 BY 1 UNTIL H0 > 3
         AFTER   H1 FROM 1 BY 1 UNTIL H1 > 5

   イ PERFORM  SHUTSURYOKU
         VARYING H0 FROM 1 BY 1 UNTIL H0 > 3
         AFTER   H2 FROM 1 BY 1 UNTIL H2 > 6

   ウ PERFORM  SHUTSURYOKU
         VARYING H1 FROM 1 BY 1 UNTIL H1 > 5
         AFTER   H0 FROM 1 BY 1 UNTIL H0 > 3

   エ PERFORM  SHUTSURYOKU
         VARYING H1 FROM 1 BY 1 UNTIL H1 > 5
         AFTER   H2 FROM 1 BY 1 UNTIL H2 > 6

   オ PERFORM  SHUTSURYOKU
         VARYING H2 FROM 1 BY 1 UNTIL H2 > 6
         AFTER   H0 FROM 1 BY 1 UNTIL H0 > 3

   カ PERFORM  SHUTSURYOKU
         VARYING H2 FROM 1 BY 1 UNTIL H2 > 6
         AFTER   H1 FROM 1 BY 1 UNTIL H1 > 5

東京理科大学 infoserv 戻る 次頁:問13