[更新日]1998.11.06


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

〔プログラムの説明〕

企業別に資本金,年間売上額,年間経常利益額などが記録された企業情報 ファイルを集計して,都道府県別に企業数,資本金合計,年間売上額合計, 年間経常利益額合計を印字する。

(1) 企業情報ファイルのレコード様式は,次のとおりである。

企業コード

都道

府県

コード

資本金

(単位千円)

年間売上額

(単位千円)

年間経常

利益額

(単位千円)

その他

9 けた

2 けた

9 けた

11 けた

9 けた

60 けた

(2) 都道府県コードは,01 から 47 までとする。

(3) 印字様式は,次のとおりである。

 

トドウフケン キギョウスウ シホンキン(センエン) ネンカンウリアゲガク(センエン) ネンカンケイジョウリエキガク (センエン)

XX Z,ZZZ,ZZ9 ZZ,ZZZ,ZZZ,ZZ9 Z,ZZZ,ZZZ,ZZZ,ZZ9 ---,---,---,--9

XX Z,ZZZ,ZZ9 ZZ,ZZZ,ZZZ,ZZ9 Z,ZZZ,ZZZ,ZZZ,ZZ9 ---,---,---,--9

XX Z,ZZZ,ZZ9 ZZ,ZZZ,ZZZ,ZZ9 Z,ZZZ,ZZZ,ZZZ,ZZ9 ---,---,---,--9

 企業数,資本金合計,年間売上額合計,年間経常利益額合計は,それぞれ 7 けた,11 けた,13 けた,11 けたを超えないものとする。

 見出しは,最初に 1 度だけ印字する。

〔プログラム〕

(行番号)
01    DATA DIVISION.
02    FILE SECTION.
03    FD  KIGYO-FILE.
04    01  KIGYO-REC.
05        02                        PIC  X(09).
06        02  KEN-K                 PIC  9(02).
07        02  SHIHON-K              PIC  9(09).
08        02  URIAGE-K              PIC  9(11).
09        02  RIEKI-K               PIC S9(09).
10        02                        PIC  X(60).
11    FD  SHUKEI-FILE.
12    01  SHUKEI-REC.
13        02  KEN-S                 PIC  X(02).
14        02                        PIC  X(05).
15        02  SU-S                  PIC  Z,ZZZ,ZZ9.
16        02                        PIC  X(02).
17        02  SHIHON-S              PIC  ZZ,ZZZ,ZZZ,ZZ9.
18        02                        PIC  X(03).
19        02  URIAGE-S              PIC  Z,ZZZ,ZZZ,ZZZ,ZZ9.
20        02                        PIC  X(09).
21        02  RIEKI-S               PIC  ---,---,---,--9.
22    WORKING-STORAGE SECTION.
23    01  FILE-END                  PIC  X(03) VALUE SPACE.
24    01  KEN                       PIC  9(02).
25    01  SHUKEI-TBL.
26        02  OCCURS 47.
27            03  SU-T              PIC  9(07).
28            03  SHIHON-T          PIC  9(11).
29            03  URIAGE-T          PIC  9(13).
30            03  RIEKI-T           PIC S9(11).
31    01  MIDASHI.
32        02                        PIC  X(52) VALUE
33     "トドウフケン キギョウスウ  シホンキン(センエン) ネンカンウリアゲガク(センエン)".
34        02                        PIC  X(24) VALUE
35     " ネンカンケイジョウリエキガク (センエン)".
36    PROCEDURE DIVISION.
37    MAIN-RTN.
38        OPEN INPUT KIGYO-FILE  OUTPUT SHUKEI-FILE.
39        INITIALIZE SHUKEI-TBL.
40        PERFORM READ-RTN UNTIL FILE-END = "END".
41        PERFORM PRINT-RTN.
42        CLOSE KIGYO-FILE SHUKEI-FILE.
43        STOP RUN.
44    READ-RTN.
45        READ KIGYO-FILE AT END
46           MOVE "END" TO FILE-END
47        NOT AT END
48           COMPUTE SU-T (KEN-K) = SU-T (KEN-K) + 1
49           COMPUTE SHIHON-T (KEN-K) = SHIHON-T (KEN-K) + SHIHON-K
50           COMPUTE URIAGE-T (KEN-K) = URIAGE-T (KEN-K) + URIAGE-K
51           COMPUTE RIEKI-T (KEN-K) = RIEKI-T (KEN-K) + RIEKI-K
52        END-READ.
53    PRINT-RTN.
54        WRITE SHUKEI-REC FROM MIDASHI AFTER PAGE.
55        PERFORM VARYING KEN FROM 1 BY 1 UNTIL KEN > 47
56           MOVE SPACE TO SHUKEI-REC
57           MOVE KEN TO KEN-S
58           MOVE SU-T (KEN) TO SU-S
59           MOVE SHIHON-T (KEN) TO SHIHON-S
60           MOVE URIAGE-T (KEN) TO URIAGE-S
61           MOVE RIEKI-T (KEN) TO RIEKI-S
62           WRITE SHUKEI-REC AFTER 1
63        END-PERFORM.

〔プログラム変更の説明〕

都道府県別に集計を印字した後に,次に指定する地域ごとの集計も印字する。

(1) 地域コードと都道府県コードの対応は,次のとおりである。

地域

コード

都道府県

コード

地域

コード

都道府県

コード

地域

コード

都道府県

コード

A

B

C

  01

  02 〜 07

  08 〜 14

D

E

F

  15 〜 24

  25 〜 30

  31 〜 35

G

H

I

  36 〜 39

  40 〜 46

  47

(2) 企業数,資本金合計,年間売上額合計,年間経常利益額合計は, それぞれ 7 けた,11 けた,13 けた,11けたを超えないものとする。

設問1 次の記述中の に入れる正しい答えを,解答群の中から選べ。

プログラム変更の説明に従って,次の 2 種類の方法によってプログラム変更を行った。

ここで,DATA DIVISION の変更内容は,2 種類とも共通で次のとおりである。

位置

処理

24 行目

25 行目

の間

追加

01  CHI                  PIC  9(02).
01  CHI-TBL.
    02  CHI-VALUE-T      PIC  X(09) VALUE "ABCDEFGHI".
    02  REDEFINES CHI-VALUE-T.
        03  CHI-T OCCURS 9 PIC  X(01).

26 行目

置換

    02  OCCURS 56.

(方法 1 )次のとおりにプログラムの内容を変更する。

位置

処理

追加

EVALUATE  
   WHEN 01          MOVE 48 TO KEN
   WHEN 02 THRU 07  MOVE 49 TO KEN
   WHEN 08 THRU 14  MOVE 50 TO KEN
   WHEN 15 THRU 24  MOVE 51 TO KEN
   WHEN 25 THRU 30  MOVE 52 TO KEN
   WHEN 31 THRU 35  MOVE 53 TO KEN
   WHEN 36 THRU 39  MOVE 54 TO KEN
   WHEN 40 THRU 46  MOVE 55 TO KEN
   WHEN 47          MOVE 56 TO KEN
END-EVALUATE
COMPUTE SU-T (KEN) = SU-T (KEN) + 1
COMPUTE SHIHON-T (KEN) = SHIHON-T (KEN) + SHIHON-K
COMPUTE URIAGE-T (KEN) = URIAGE-T (KEN) + URIAGE-K
COMPUTE RIEKI-T (KEN) = RIEKI-T (KEN) + RIEKI-K

55 行目

置換

PERFORM VARYING KEN FROM 1 BY 1 UNTIL KEN > 56

 

 

57 行目

 

 

置換

   IF KEN < 48 THEN
      MOVE KEN TO KEN-S
   ELSE
      COMPUTE CHI = KEN - 47
      MOVE CHI-T (CHI) TO KEN-S
   END-IF

(方法 2 )次のとおりにプログラムの内容を変更する。

位置

処理

 

 

 

55 行目

56 行目

の間

 

 

 

追加

EVALUATE  
   WHEN 01          MOVE 48 TO CHI
   WHEN 02 THRU 07  MOVE 49 TO CHI
   WHEN 08 THRU 14  MOVE 50 TO CHI
   WHEN 15 THRU 24  MOVE 51 TO CHI
   WHEN 25 THRU 30  MOVE 52 TO CHI
   WHEN 31 THRU 35  MOVE 53 TO CHI
   WHEN 36 THRU 39  MOVE 54 TO CHI
   WHEN 40 THRU 46  MOVE 55 TO CHI
   WHEN 47          MOVE 56 TO CHI
END-EVALUATE
COMPUTE SU-T (CHI) = SU-T (CHI) + SU-T (KEN)
COMPUTE SHIHON-T (CHI) = SHIHON-T (CHI) + SHIHON-T (KEN)
COMPUTE URIAGE-T (CHI) = URIAGE-T (CHI) + URIAGE-T (KEN)
COMPUTE RIEKI-T (CHI) = RIEKI-T (CHI) + RIEKI-T (KEN)

追加

PERFORM VARYING KEN FROM 1 BY 1 UNTIL KEN > 9
   MOVE SPACE TO SHUKEI-REC
   COMPUTE CHI = KEN + 47
   MOVE CHI-T (KEN) TO KEN-S
   MOVE SU-T (CHI) TO SU-S
   MOVE SHIHON-T (CHI) TO SHIHON-S
   MOVE URIAGE-T (CHI) TO URIAGE-S
   MOVE RIEKI-T (CHI) TO RIEKI-S
   WRITE SHUKEI-REC AFTER 1
END-PERFORM.

a,d に関する解答群

ア 40 行目と 41 行目の間    イ 46 行目と 47 行目の間

ウ 51 行目と 52 行目の間    エ 54 行目と 55 行目の間

オ 62 行目と 63 行目の間    カ 63 行目の後ろ

b,c に関する解答群

ア CHI      イ KEN       ウ KEN-K

エ RIEKI-K    オ SHIHON-K    カ URIAGE-K

設問2 次の記述中の に入れる正しい答えを,解答群の中から選べ。

方法 1 と方法 2 によって変更したそれぞれのプログラムの演算命令(COMPUTE)の実行回数を比較すると,企業情報ファイルのレコード件数が を超えると,方法 1 の方が 演算命令(COMPUTE)の実行回数が多くなる。

解答群

ア 1    イ 47   ウ 56   エ 94   オ 188

カ 376   キ 752


戻る 次頁:問13