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

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

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

 

〔プログラムの説明〕

 従業員の社内資格の保有状況を管理するプログラムである。

 情報サービス企業であるP社には社内資格として資格1〜4があり,従業員に取得を奨励している。 社内資格を取得するための試験(以下,資格試験という)は定期的に実施しており, 全従業員の保有状況を保有資格ファイルで管理する。P社の事業年度は4月から翌年3月までであり, 上期(4月〜9月)と下期( 10 月〜翌年3月)の2期から成る。 資格試験に合格した従業員の情報は合格ファイルに1期分を蓄積する。 上期の合格者を蓄積した合格ファイルは 10 月初めに,下期の合格者を蓄積した合格ファイルは 4月初めにプログラムを実行して,保有資格ファイルに反映する運用である。 従業員は,合格した資格試験を再度受験することはない。

 

(1)保有資格ファイルは,図1に示すレコード様式の索引ファイルであり,全従業員のレコードが 格納されている。主キーは従業員番号である。プログラムでは,乱呼出し法で入出力している。

図1 保有資格ファイルのレコード様式

 

 資格1〜4には,従業員番号で示される従業員が各資格試験に合格した日付として, 西暦の年,月,日が,それぞれ 4 桁,2 桁,2 桁で格納されている。 合格していない場合には,0 が格納されている。

 

(2)合格ファイルは,図2に示すレコード様式の順ファイルであり,資格試験に合格した従業員の レコードが格納されている。同じ従業員が複数の資格試験に合格した場合は, 合格した資格試験ごとにレコードが格納されている。レコードは,順序不同で格納されている。

図2 合格ファイルのレコード様式

 

@ 資格種別には,合格した資格試験を表す値が,資格 3 は 3 で,資格 4 は 4 で格納されている。

A 合格日には,合格した日付として,西暦の年, 月,日が,それぞれ 4 桁,2 桁,2 桁で格納されている。

(3)保有資格ファイルには,合格ファイルの従業員番号で示される従業員のレコードが必ず存在する。

〔プログラム〕

(行番号)

 1  DATA DIVISION.
 2  FILE SECTION.
 3  SD SRT-FILE.
 4  Ø1 SRT-REC.
 5     Ø2 SRT-NO        PIC X(8).
 6     Ø2 SRT-CD        PIC 9(1).
 7     Ø2 SRT-DATE      PIC 9(8).
 8  FD QLF-FILE.
 9  Ø1 QLF-REC.
1Ø     Ø2 QLF-NO        PIC X(8).
11     Ø2 QLF-INF.
12        Ø3 QLF-DATE      PIC 9(8) OCCURS 4.
13  FD PAS-FILE.
14  Ø1 PAS-REC.
15     Ø2 PAS-NO        PIC X(8).
16     Ø2 PAS-CD        PIC 9(1).
17     Ø2 PAS-DATE      PIC 9(8).
18  WORKING-STORAGE SECTION.
19  77 SRT-FLAG       PIC X(1)VALUE SPACE.
2Ø     88 SRT-EOF        VALUE "E".
21  77 CR-NO          PIC X(8)VALUE SPACE.
22  PROCEDURE DIVISION
23  MAIN-PROC.
24      OPEN I-O QLF-FILE.
25      SORT SRT-FILE ASCENDING KEY SRT-NO
26           USING PAS-FILE
27           OUTPUT PROCEDURE IS RET-PROC.
28      CLOSE QLF-FILE.
29      STOP RUN.
3Ø  RET-PROC.
31      PERFORM TEST BEFORE UNTIL SRT-EOF
32         RETURN SRT-FILE AT END    SET SRT-EOF TO TRUE
33                                   
34                         NOT AT END PERFORM UPD-PROC
35         END-RETURN.
36      END-PERFORM.
37  UPD-PROC.
38      IF  THEN
39         PERFORM WRI-PROC
4Ø         MOVE SRT-NO TO QLF-NO
41         READ QLF-FILE END-READ
42         MOVE QLF-NO TO CR-NO
43      END-IF.
44       .
45  WRI-PROC.
46      IF CR-NO NOT = SPACE THEN
47         REWRITE QLF-REC
48      END-IF.
設問1   プログラム中の に入れる正しい答えを,解答群の中から選べ。

 

a に関する解答群 ア MOVE SPACE TO CR-NO       イ PERFORM UPD-PROC

ウ PERFORM WRI-PROC        エ REWRITE QLF-REC

b に関する解答群 ア CR-NO = SPACE       イ SRT-NO = CR-NO

ウ SRT-NO = SPACE       エ SRT-NO NOT = CR-NO

c に関する解答群 ア MOVE QLF-DATE(SRT-CD) T0 QLF-DATE(SRT-CD + 1)

イ MOVE SRT-DATE T0 QLF-DATE(SRT-CD)

ウ MOVE SRT-NO T0 QLF-DATE(SRT-CD)

エ MOVE ZERO T0 QLF-DATE(SRT-CD)

 

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

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

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

基本情報技術者試験


設問2   P社では,社内資格を四つ全て取得した従業員を表彰している。 合格ファイルの内容を保有資格ファイルに反映するとき,新たに表彰の対象となった従業員の 従業員番号を表示するようにプログラムを変更する。表1中の に入れる正しい答えを,解答群の中から選べ。

 

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

d に関する解答群 ア 行番号 33 と 34 の間       イ 行番号 35 と 36 の間

ウ 行番号 42 と 43 の間       エ 行番号 46 と 47 の間

e に関する解答群 ア QLF-DATE(CR-NO) = ZERO       イ QLF-DATE(W-CNT) = ZERO

ウ QLF-INF NOT = ALL ZERO       エ W-CNT > 4

 

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

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

基本情報技術者試験


設問3   プログラムを表2に示すとおりに変更して,通常の運用どおり 10 月初めに実行した。 行番号 28 と 29 の間に追加した DISPLAY 文によって表示される内容に関する説明として 適切な答えを,解答群の中から選べ。ここで,プログラムは設問2の変更を行う前のものとする。 また,対象となる従業員の数は,10,000 未満である。

 

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

解答群 ア 当該事業年度の上期に,各資格試験に合格した従業員の数

イ 当該事業年度の上期に,各資格試験を受験した従業員の数

ウ 当該事業年度の上期までに,各資格試験に合格した従業員の数

エ 当該事業年度の上期までに,各資格試験に合格していない従業員の数

 

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

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