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

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

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

 

〔プログラムの説明〕

 八つの支店をもつZ社は4月〜翌年3月を事業年度としており, 毎年4月に前年度の売上データを集計して売上マスタファイルに格納する。 このプログラムは,売上伝票ファイルに格納された前年度の売上データを集計して, 売上マスタファイルに格納する。

 

(1) 売上伝票ファイルは,図1に示すレコード様式の順ファイルである。

 

図1 売上伝票ファイルのレコード様式

 

@ 売上伝票ファイルには,前年度の全支店の売上データが,順不同で格納されている。 レコード件数がゼロの月はない。

A 支店番号には,各支店に対応する 01 〜 08 の番号が格納されている。 支店1は 01,支店2は 02,…,支店8は 08 である。

B 伝票番号には,各支店で一意となる6桁の数字が格納されている。

C 売上日には,西暦の年,月,日が,それぞれ4桁,2桁,2桁で格納されている。

 

(2) 売上マスタファイルは,図2に示すレコード様式の索引ファイルである。主キーは売上年月である。

 

図2 売上マスタファイルのレコード様式

 

@ 売上年月には,西暦の年,月が,それぞれ4桁,2桁で格納される。

A 支店別売上金額には,当該年月における各支店の売上金額が格納される。 各支店の月間の売上金額が9桁を超えることはない。

B 売上金額合計には,当該年月における全支店の売上金額の合計が格納される。

C 売上マスタファイルには,このプログラムを実行する時点で,2000 年度から 前々年度までのデータが格納されている。

 

〔プログラム〕

(行番号)

 1  DATA DIVISION.
 2  FILE SECTION.
 3  SD SRT-FILE.
 4  Ø1 SRT-REC.
 5     Ø2 SRT-BRANCH      PIC 9(2).
 6     Ø2 SRT-NO          PIC 9(6).
 7     Ø2 SRT-DATE.
 8        Ø3 SRT-YYYYMM      PIC 9(6).
 9        Ø3 SRT-DD          PIC 9(2).
1Ø     Ø2 SRT-AMOUNT      PIC 9(6).
11  FD SAL-FILE.
12  Ø1 SAL-REC        PIC X(22).
13  FD MST-FILE.
14  Ø1 MST-REC.
15     Ø2 MST-YYYYMM.
16        Ø3 MST-YYYY       PIC 9(4).
17        Ø3 MST-MM         PIC 9(2).
18     Ø2 MST-AMOUNT     PIC 9(1Ø).
19     Ø2 MST-TABLE.
2Ø        Ø3 MST-BRANCH     PIC 9(9) OCCURS 8.
21  WORKING-STORAGE SECTION.
22  77 CNT          PIC 9(1).
23  77 SRT-FLAC     PIC X(1) VALUE SPACE.
24    88 SRT-EOF       VALUE "E".
25  PROCEDURE DIVISION.
26  MAIN-PROC.
27      OPEN EXTEND MST-FILE.
28      SORT SRT-FILE ASCENDING KEY a
29         USING SAL-FILE
3Ø         OUTPUT PROCEDURE IS RET-PROC.
31      CLOSE MST-FILE.
32      STOP RUN.
33  RET-PROC.
34      INITIALIZE MST-REC.
35      PERFORM UNTIL SRT-EOF
36         RETURN SRT-FILE AT END     SET SRT-EOF TO TRUE
37                                    PERFORM WRI-PROC
38                         NOT AT END PERFORM ADD-PROC
39         END-RETURN
4Ø      END-PERFORM.
41  ADD-PROC.
42      IF b THEN
43         PERFORM WRI-PROC
44         INITIALIZE MST-REC
45         MOVE SRT-YYYYMM TO MST-YYYYMM
46      END-IF.
47      c.
48  WRI-PROC.
49      IF MST-YYYY NOT = ZERO THEN
5Ø         PERFORM VARYING CNT FROM 1 BY 1 UNTIL CNT > 8
51            d
52         END-PERFORM
53         WRITE MST-REC
54      END-IF.

 

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

 

a に関する解答群 ア SRT-AMOUNT       イ SRT-BRANCH       ウ SRT-DATE       エ SRT-NO

 

b に関する解答群 ア MST-YYYYMM = SRT-YYYYMM       イ MST-YYYYMM NOT = SRT-YYYYMM

ウ MST-YYYYMM = ZERO      エ SRT-YYYYMM = ZERO

 

c,d に関する解答群 ア ADD MST-BRANCH(CNT) TO MST-AMOUNT

イ ADD MST-BRANCH(SRT-BRANCH) TO MST-AMOUNT

ウ ADD SRT-AMOUNT TO MST-BRANCH(CNT)

エ ADD SRT-AMOUNT TO MST-BRANCH(SRT-BRANCH)

オ MOVE SRT-AMOUNT TO MST-BRANCH(SRT-BRANCH)

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

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

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

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

基本情報技術者試験


設問2  前年度の売上データを集計して,売上マスタファイルに格納する際に, 第1四半期から第4四半期の順に,当該四半期における全支店の売上金額の合計を 表示するようにプログラムを変更する。第1四半期から第4四半期は, それぞれ4月〜6月,7月〜9月,10 月〜 12 月,1月〜3月である。 表示例を図3に示す。表1中の   に入れる正しい答えを, 解答群の中から選べ。

 

図3 表示例

 

          表1 プログラムの変更内容
処置変更内容
行番号 17 と 18 の間
に追加
  88 QUART-MONTH  VALUES f .
行番号 24 と 25 の間
に追加
77 QUART-AMOUNT     PIC 9(11) VALUE ZERO.
77 QUART-AMOUNT-D   PIC ZZ,ZZZ,ZZZ,ZZ9.
77 CR-QUART         PIC 9(1)  VALUE 1.
Ø1 QUART-STR        PIC X(8)  VALUE "STNDRDTH".
Ø1 QUART-TBL REDEFINES QUART-STR.
   Ø2 QUART-NO        PIC X(2) OCCURS 4.
e
に追加
  ADD MST-AMOUNT TO QUART-AMOUNT
  IF QUART-MONTH THEN
     MOVE QUART-AMOUNT TO QUART-AMOUNT-D
     DISPLAY CR-QUART QUART-NO(CR-QUART)
             " QUARTER: " QUART-AMOUNT-D
     MOVE ZERO TO QUART-AMOUNT
        g  
  END-IF

 

e に関する解答群 ア 行番号 30 と 31 の間       イ 行番号 40 と 41 の間

ウ 行番号 47 と 48 の間       エ 行番号 52 と 53 の間

 

f に関する解答群 ア 1 THRU 12       イ 4 THRU 3       ウ 4, 7, 10, 1       エ 6, 9, 12, 3

 

g に関する解答群 ア ADD 1 TO CR-QUART       イ ADD 3 T0 OR-QUART

ウ MOVE CNT TO CR-QUART       エ MOVE ZERO TO CR-QUART

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

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

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


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