平成27年 秋期 基本情報技術者 午後 問10
問10 COBOL
次の COBOLプログラムの説明及びプログラムを読んで,設問1,2に答えよ。
〔プログラムの説明〕
D社では,ある製品の満足度を調べるために,アンケート調査を実施し,
得られた 1,000 件の回答をアンケート結果ファイルに登録した。このプログラムは,
アンケート結果ファイルを読み込み,集計結果をグラフで表示する。
(1) アンケート結果ファイルは,図1に示すレコード様式の順ファイルである。

図1 アンケート結果ファイルのレコード様式
@ 回答 ID は,一意に割り振られた 0001 〜 1000 の番号である。
A 価格満足度,機能満足度及びデザイン満足度は,
それぞれの満足度の高から低を 5 〜 1 の5段階で評価したものである。
(2) 集計した満足度の分布をヒストグラムで表示する。図2に集計結果の表示例を示す。
@ 価格(Price),機能(Function)及びデザイン(Design)の各項目のヒストグラムを並べて表示する。
A 各ヒストグラムは,項目名の行と満足度 5 〜 1 の行の6行から成る。
B 各満足度の行は,満足度の値,その満足度の選択数,選択数を長さで表す横棒の順に表示する。
C 選択数は,値が 0 の場合以外は先行する数字 0 を除いて,値が 0 の場合は1桁の数字 0 を,
右寄せで表示する。
D 横棒は,選択数 20 ごとに記号“*”を一つ用いて表示する。選択数が 20 に満たない端数は切り捨てる。

図2 集計結果の表示例
〔プログラム〕
(行番号)
1 DATA DIVISION.
2 FILE SECTION.
3 FD ANS-FILE.
4 Ø1 ANS-REC.
5 Ø2 ANS-ID PIC 9(4).
6 Ø2 ANS-SATIS OCCURS 3.
7 Ø3 ANS-VAL PIC 9(1).
8 WORKING-STORAGE SECTION.
9 77 S-PRICE PIC 9(1)VALUE 1.
1Ø 77 S-FUNCTION PIC 9(1) VALUE 2.
11 77 S-DESIGN PIC 9(1) VALUE 3.
12 77 ANS-FLAG PIC 9(1)VALUE Ø.
13 88 ANS-EOF VALUE 1.
14 Ø1 HIST-REC.
15 Ø2 HIST-VAL PIC 9(1).
16 Ø2 PIC X(1) VALUE SPACE.
17 Ø2 HIST-NUM PIC .
18 Ø2 PIC X(1) VALUE SPACE.
19 Ø2 HIST-PLOT PIC X(5Ø).
2Ø Ø1 CNT-REC.
21 Ø2 CNT-SATIS OCCURS 3.
22 Ø3 CNT-VAL OCCURS 5.
23 Ø4 CNT-NUM PIC 9(4) VALUE Ø.
24 77 PLOT-NUM PIC 9(2).
25 77 I PIC 9(1).
26 77 J PIC 9(1).
27 PROCEDURE DIVISION.
28 MAIN-PROC.
29 OPEN INPUT ANS-FILE.
3Ø PERFORM READ-PROC.
31 PERFORM DISP-PROC.
32 CLOSE ANS-FILE.
33 STOP RUN.
34 READ-PROC.
35 PERFORM UNTIL ANS-EOF
36 READ ANS-FILE
37 AT END
38 SET ANS-EOF TO TRUE
39 NOT AT END
4Ø PERFORM VARYING I FROM 1 BY 1 UNTIL I > 3
41 MOVE ANS-VAL(I) TO J
42 ADD 1 TO CNT-NUM(I, J)
43 END-PERFORM
44 END-READ
45 END-PERFORM.
46 DISP-PROC.
47 PERFORM VARYING I FROM 1 BY 1 UNTIL I > 3
48 EVALUATE I
49 WHEN S-PRICE
5Ø DISPLAY "Price"
51 WHEN S-FUNCTION
52 DISPLAY "Function"
53 WHEN S-DESION
54 DISPLAY "Design"
55 END-EVALUATE
56 PERFORM VARYING J FROM 5 BY -1 UNTIL J = Ø
57 MOVE J TO HIST-VAL
58 MOVE TO HIST-NUM
59 DIVIDE BY 2Ø GIVING PLOT-NUM
6Ø MOVE SPACE TO HIST-PLOT
61 IF PLOT-NUM > Ø THEN
62 MOVE ALL "*" TO HIST-PLOT( )
63 END-IF
64 DISPLAY
65 END-PERFORM
66 END-PERFORM.
設問1 プログラム中の に入れる正しい答えを,解答群の中から選べ。
a に関する解答群
ア 9(4) イ B(3)9 ウ Z(3)9 エ Z(4)
b に関する解答群
ア CNT-NUM(6 - I, J) イ CNT-NUM(I, 5 - J)
ウ CNT-NUM(I, 6 - J) エ CNT-NUM(I, J)
c に関する解答群
ア 1:PLOT-NUM イ 1:PLOT-NUM + 1
ウ PLOT-NUM エ PLOT-NUM + 1
d に関する解答群
ア HIST-NUM イ HIST-PLOT ウ HIST-REC エ HIST-VAL
ウ
エ
ア
ウ
設問2 |
各回答の3項目の満足度を加算した値(以下,総合満足度という)を求め,
総合満足度ごとの回答 ID の一覧を追加して表示するよう,プログラムを変更する。
追加した部分の表示例を図3に示す。表1中の に入れる正しい答えを,
解答群の中から選べ。
|
@ 総合満足度の昇順に,その値と該当する全ての回答 ID を表示する。
A 回答 ID は,総合満足度ごとに昇順に表示する。
B 回答 ID は,10 件ごとに改行して表示する。
C 回答が1件もない総合満足度の値に対しては,表示を省略する。

図3 総合満足度ごとの回答 ID 一覧の表示例
表1 プログラムの変更内容
処置 | 変更内容 |
行番号 7 と 8 の間に 追加 |
SD SRT-FILE.
Ø1 SRT-REC.
Ø2 SRT-SUM PIC 9(2).
Ø2 SRT-ID PIC 9(4).
|
行番号 26 と 27 の間に 追加 |
77 SRT-FLAC PIC 9(1) VALUE Ø.
88 SRT-EOF VALUE 1.
Ø1 T-SATIS-REC.
Ø2 T-SATIS-SUM PIC Z(2).
Ø2 T-SATIS-IDS OCCURS 1Ø.
Ø3 PIC X(1) VALUE SPACE.
Ø3 T-SATIS-ID PIC X(4).
77 LAST-SUM PIC 9(2).
77 POS PIC 9(2).
|
行番号 30,31 を 変更 |
SORT SRT-FILE ASCENDING KEY
INPUT PROCEDURE IS READ-PROC
OUTPUT PROCEDURE IS DISP-PROC.
|
行番号 40 〜 43 を 変更 |
MOVE Ø TO SRT-SUM
PERFORM VARYING I FROM 1 BY UNTIL I > 3
MOVE ANS-VAL(I)TO J
ADD 1 TO CNT-NUM(I, J)
ADD ANS-VAL(I) TO SRT-SUM
END-PERFORM
MOVE ANS-ID TO SRT-ID
RELEASE SRT-REC
|
行番号 66 の後ろに 追加 |
DISPLAY "Total".
MOVE 1 TO LAST-SUM POS.
PERFOR UNTIL SRT-EOF
RETURN SRT-FILE
AT END
SET SRT-EOF TO TRUE
NOT AT END
IF THEN
IF POS > 1 THEN
DISPLAY T-SATIS-REC
END-IF
MOVE SPACE TO T-SATIS-REC
IF THEN
MOVE SRT-SUM TO T-SATIS-SUM LAST-SUM
END-IF
MOVE 1 TO POS
END-IF
MOVE SRT-ID TO T-SATIS-ID(POS)
ADD 1 TO POS
END-RETURN
END-PERFORM.
DISPLAY T-SATIS-REC.
|
e に関する解答群
ア SRT-ID イ SRT-REC ウ SRT-SUM
f,g に関する解答群
ア POS > 1
イ POS > 1Ø
ウ SRT-SUM NOT = LAST-SUM
エ SRT-SUM NOT = LAST-SUM AND POS > 1
オ SRT-SUM NOT = LAST-SUM AND POS > 1Ø
カ SRT-SUM NOT = LAST-SUM OR POS > 1
キ SRT-SUM NOT = LAST-SUM OR POS > 1Ø
イ
キ
ウ
[←前の問題]
[次の問題→]
[問題一覧表]
[分野別]
[基本情報技術者試験TOP
]
©2004-2024 情報処理試験.jp
|
|
|