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

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

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

〔プログラムの説明〕

 X社では,従業員の英語力向上のために,定期的に英語の検定テストを実施している。 従業員は誰でも希望すれば受検することができ,直近の5回分の検定結果が 得点マスタファイルに記録される。このプログラムは,1回分の検定結果が 記録された採点ファイルを読み込み,検定結果を得点マスタファイルに反映する。

(1) 得点マスタファイルは,図1に示すレコード様式の順ファイルで, 従業員の得点履歴を管理する。

図1 得点マスタファイルのレコード様式

@ 全ての従業員に対するレコードが,従業員番号の昇順に格納されている。

A 平均得点には,得点履歴に記録された得点の平均点が小数点以下切捨てで 格納される。

B 得点履歴には,直近5回分の受検日と得点が,受検日の降順に格納される。 受検回数が5回に満たない場合,残りの得点履歴の受検日及び得点にはゼロが 格納される。

C 受検日には,年,月, 日が,それぞれ4桁,2桁,2桁の西暦で格納される。

D 得点には,当該受検日の得点が格納される。得点は 000 〜 100 である。

(2) 採点ファイルは,図2に示すレコード様式の順ファイルで, 英語の検定テストの都度,作成される。

図2 採点ファイルのレコード様式

@ ファイルの先頭レコードには,様式1のレコードが1レコードだけ格納される。 受検日には,年,月, 日が,それぞれ4桁,2桁,2桁の西暦で格納される。

A 2レコード目以降には,様式2のレコードが,従業員番号の昇順に格納される。

なお,受検は希望者だけなので,この回に受検しなかった従業員のレコードは存在しない。

〔プログラム〕

(行番号)

 1  DATA DIVISION.
 2  FILE SECTION.
 3  FD MST-FILE.
 4  Ø1 MST-REC.
 5     Ø2 MST-ENUM       PIC 9(6).
 6     Ø2 MST-AVG        PIC 9(3).
 7     Ø2 MST-HST.
 8        Ø3 MST-ELM     OCCURS 5.
 9           Ø4 MST-DATE    PIC 9(8).
1Ø           Ø4 MST-SCORE   PIC 9(3).
11  FD SCR-FILE.
12  Ø1 FIRST-REC.
13     Ø2 SCR-DATE       PIC 9(8).
14     Ø2 FILLER         PIC X(1).
15  Ø1 SCR-REC.
16     Ø2 SCR-ENUM       PIC 9(6).
17     Ø2 SCR-SCORE      PIC 9(3).
18  WORKING-STORAGE SECTION.
19  77 SCR-FLAC     PIC X(1) VALUE SPACE.
2Ø     88 SCR-EOF   VALUE "E".
21  77 W-CNT        PIC 9(2).
22  77 TEST-DATE    PIC 9(8).
23  77 SCR-TOTAL    PIC 9(4).
24  77 HST-NUM      PIC 9(1).
25  PROCEDURE DIVISION.
26  MAIN-PROC.
27      OPEN INPUT SCR-FILE
28           I-O   MST-FILE.
29      READ SCR-FILE.
3Ø      MOVE SCR-DATE TO TEST-DATE.
31      PERFORM MATCHINC-PROC.
32      CLOSE MST-FILE SCR-FILE.
33      STOP RUN.
34  MATCHING-PROC.
35      PERFORM UNTIL SCR-EOF
36         READ SCR-FILE
37            AT END
38               SET SCR-EOF TO TRUE
39            NOT AT END
4Ø               PERFORM 
41                  READ MST-FILE END-READ
42               END-PERFORM
43               PERFORM UPDATE-PROC
44         END-READ
45      END-PERFORM.
46  UPDATE-PROC.
47      MOVE ZERO TO SCR-TOTAL HST-NUM.
48      PERFORM  
49         MOVE MST-ELM(W-CNT)TO MST-ELM(W-CNT + 1)
5Ø         IF  THEN
51            ADD 1 TO HST-NUM 
52            ADD MST-SCORE(W-CNT)TO SCR-TOTAL
53         END-IF
54      END-PERFORM.
55      MOVE TEST-DATE TO MST-DATE(  ).
56      MOVE SCR-SCORE TO MST-SCORE(  ).
57      COMPUTE MST-AVG = (SCR-TOTAL + SCR-SCORE) / (HST-NUM + 1).
58      REWRITE MST-REC.
設問1 プログラム中の に入れる正しい答えを, 解答群の中から選べ。

a,b に関する解答群

ア TEST AFTER UNTIL SCR-ENUM = MST-ENUM

イ TEST AFTER VARYING W-CNT FROM ZERO BY 1 UNTIL W-CNT > 5

ウ TEST BEFORE UNTIL SCR-ENUM NOT = MST-ENUM

エ TEST BEFORE VARYING W-CNT FROM 1 BY 1 UNTIL W-CNT > 4

オ TEST BEFORE VARYING W-CNT FROM 4 BY -1 UNTIL W-CNT = ZERO

c に関する解答群

ア MST-DATE(W-CNT) = ZERO

イ MST-DATE(W-CNT) NOT = ZERO

ウ MST-SCORE(W-CNT) = ZERO

エ MST-SCORE(W-CNT) NOT = ZERO

d に関する解答群

ア 1       イ 5       ウ HST-NUM       エ W-CNT

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

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

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

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

基本情報技術者試験


設問2 検定結果の反映時に,今回の検定における得点の上位 10 名の従業員番号と 得点を表示するようプログラムを変更する。このとき,10 人目の受検者と同得点の 受検者が複数いた場合は,当該受検者を全て表示する。 表中の に入れる正しい答えを,解答群の中から選べ。

表1 プログラムの変更内容

 処置   変更内容
行番号 2 と 3 の間 
に追加
SD SRT-FILE.
Ø1 SRT-REC.
   Ø2 SRT-ENUM      PIC 9(6).
   Ø2 SRT-SCORE     PIC 9(3).
行番号 24 と 25 の
間に追加
77 DISP-FLAC    PIC X(1) VALUE SPACE.
   88 DISP-END  VALUE "E".
77 PREV-SCORE   PIC 9(3) VALUE ZERO.
 行番号 31 を変更
SORT SRT-FILE DESCENDING KEY SRT-SCORE
   INPUT  PROCEDURE IS MATCHING-PROC
   OUTPUT PROCEDURE IS DISPLAY-PROC.

に追加
MOVE SCR-REC TO SRT-REC
RELEASE SRT-REC
行番号 58 の後ろに
追加
DISPLAY-PROC.
    PERFORM TEST BEFORE
            VARYING W-CNT FROM 1 BY 1 UNTIL DISP-END  
       RETURN SRT-FILE
          AT END
             SET DISP-END TO TRUE
          NOT AT END
             IF  THEN
                SET DISP-END TO TRUE
             ELSE
                DISPLAY SRT-ENUM ": " SRT-SCORE
                
             END-IF
       END-RETURN
    END-PERFORM.

e に関する解答群

ア 行番号 34 と 35 の間       イ 行番号 41 と 42 の間

ウ 行番号 43 と 44 の間       エ 行番号 53 と 54 の間

f に関する解答群

ア W-CNT = 1Ø AND SRT-SCORE = PREV-SCORE

イ W-CNT = 1Ø AND SRT-SCORE > PREV-SCORE

ウ W-CNT > 1Ø AND SRT-SCORE < PREV-SCORE

エ W-CNT > 1Ø AND SRT-SCORE = PREV-SCORE

g に関する解答群 ア ADD 1 TO W-CNT

イ ADD SRT-SCORE TO PREV-SCORE

ウ MOVE PREV-SCORE TO SRT-SCORE

エ MOVE SRT-SCORE TO PREV-SCORE

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

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

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


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