基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [令和元年秋午前] [令和元年秋午後]

平成20年 春期 基本情報技術者 午後 問07
問07   COBOL

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

〔プログラムの説明〕

 ある会社の工場では,1年に1回,従業員とその家族向けに工場を開放して様々な イベントを開催している。このプログラムは,イベントに参加した従業員が提出した "楽しかったイベント"のアンケート結果を集計する。

(1) アンケート結果ファイルは,図1に示すレコード様式の順ファイルである。

 従業員番号
   6けた
     イベント
 工場見学
(FACTORY)
 1けた
 健康チェック
(HEALTH)
 1けた
 ミニ SL
(MINI-SL)
 1けた
 動物コーナー
(ANIMAL)
 1けた
 PK 合戦
(PK)
 1けた

図1 アンケート結果ファイルのレコード様式

 @ アンケート結果ファイルには,楽しかったイベントに1が, それ以外には0が格納されている。

 A 楽しかったイベントは二つまで選択できる。三つ以上のイベントが選択されて いた場合は,無効として集計対象から除外する。

 B アンケート結果ファイルのレコード数は 9,999 以下とする。

(2) 集計結果は,図2に示すとおり画面上に表示する。


FACTORY : 0265 
HEALTH  : 0141
MINI-SL : 0238 
ANIMAL  : 0059 
PK      : 0097

図2 集計結果の例

〔プログラム〕

(行番号) 
 1 DATA DIVISI0N.
 2 FILE SECTI0N.
 3 FD  RESULT-FILE.
 4 01  RESULT-REC.
 5     02  EMPLOYEE      PIC X(6).
 6     02  SURVEY        PIC X(5).
 7 WORKING-STORACE SECTION.
 8 01  SURVEY-DATA.
 9     02  EVENT         PIC 9(1) OCCURS 5.
10 01  TOTAL.
11     02 EVENT-TOTAL    PIC 9(4) OCCURS 5 VALUE ZERO.
12 77  READ-FLAG         PIC X(1) VALUE SPACE.
13     88  DATA-EOF      VALUE "E".
14 77  WK-CNT            PIC 9(1).
15 77  CHOICE-CNT        PIC 9(1).
16 01  HEADER            PIC X(40) VALUE
17                       "FACTORY HEALTH  MINI-SL ANIMAL  PK".
18 01  EVENT-HEADER REDEFINES HEADER.
19     02  EVENT-NAME    PIC X(8) OCCURS 5.
20 PROCEDURE DIVISION.
21 MAIN-PROC.
22     0PEN INPUT RESULT-FILE.
23     PERFORM UNTIL DATA-EOF
24       READ RESULT-FILE AT END     SET DATA-EOF TO TRUE
25                        NOT AT END MOVE SURVEY TO SURVEY-DATA
26                                   PERFORM CNT-PROC
27       END-READ
28     END-PERFORM.
29     CLOSE RESULT-FILE.
30     PERFORM PRT-PROC. 
31     STOP RUN.
32 CNT-PROC.
33     MOVE ZERO TO CHOICE-CNT.
34     PERFORM VARYING WK-CNT FROM 1 BY 1 UNTIL WK-CNT > 5
35       
36     END-PERFORM.
37     IF CHOICE-CNT <= 2 THEN 
38        PERFORM VARYING WK-CNT FROM 1 BY 1 UNTIL WK-CNT > 5
39          
40        END-PERFORM
41     END-IF.
42 PRT-PROC. 
43     PERFORM VARYING WK-CNT FROM 1 BY 1 UNTIL WK-CNT > 5
44       DISPLAY EVENT-NAME(WK-CNT) ": " EVENT-TOTAL(WK-CNT)
45     END-PERFORM.

設問1 プログラム中の に入れる正しい答えを, 解答群の中から選べ。

解答群

ア COMPUTE CHOICE-CNT = CHOICE-CNT + EVENT(WK-CNT)

イ COMPUTE CHOICE-CNT = CHOICE-CNT + EVENT-TOTAL(WK-CNT)

ウ COMPUTE EVENT-TOTAL(WK-CNT)
    = EVENT-TOTAL(WK-CNT) + CHOICE-CNT

エ COMPUTE EVENT-TOTAL(WK-CNT)
    = EVENT-TOTAL(WK-CNT) + EVENT(WK-CNT)

オ MOVE EVENT(WK-CNT) TO CHOICE-CNT

カ MOVE EVENT(WK-CNT) TO EVENT-TOTAL(WK-CNT)

解答 a ←クリックすると正解が表示されます

解答 b ←クリックすると正解が表示されます

基本情報技術者試験


設問2 参考データとして,二つ以上のイベントを選択した無効なアンケート結果の総数を, 集計結果の次に表示するようにプログラムを変更する。表中の に入れる正しい答えを,解答群の中から選べ。

表 プログラムの変更内容

   処置      変更内容
 行番号 19 と 20 の間
 に追加
 77  INV-CNT     PIC 9(4) VALUE ZERO.
 行番号 40 と 41 の間
 に追加
 ELSE
  
 
 に追加
 DISPLAY "INVALID DATA : " INV-CNT.

c に関する解答群

ア ADD 1 TO INV-CNT

イ MOVE CHOICE-CNT TO INV-CNT

ウ MOVE EVENT-TOTAL(WK-CNT) TO INV-CNT

エ MOVE WK-CNT TO INV-CNT

d に関する解答群

ア 行番号 32 と 33 の間    イ 行番号 36 と 37 の間

ウ 行番号 41 と 42 の間    エ 行番号 45 の次

解答 c ←クリックすると正解が表示されます

解答 d ←クリックすると正解が表示されます


[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]