[更新日]1998.11.06
問12 次のCOBOLプログラムの説明、プログラム及びプログラムの変更の説明を読んで、 設問1,2に答えよ。
〔プログラムの説明〕
企業別に資本金,年間売上額,年間経常利益額などが記録された企業情報 ファイルを集計して,都道府県別に企業数,資本金合計,年間売上額合計, 年間経常利益額合計を印字する。
(1) 企業情報ファイルのレコード様式は,次のとおりである。
企業コード
都道
府県
コード
資本金
(単位千円)
年間売上額
年間経常
利益額
その他
9 けた
2 けた
11 けた
60 けた
(2) 都道府県コードは,01 から 47 までとする。
(3) 印字様式は,次のとおりである。
トドウフケン キギョウスウ シホンキン(センエン) ネンカンウリアゲガク(センエン) ネンカンケイジョウリエキガク (センエン)
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 )次のとおりにプログラムの内容を変更する。
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