【COBOL言語】基本情報技術者試験と過去問題-平成29年度春期-|合格対策

COBOL(コボル)言語の平成29年度春期問題の解き方とは

※情報処理推進機構(IPA)は、午後の試験で選択できるプログラミング言語のうち、「COBOL」の出題を令和元年秋期試験で廃止しました。

試験-平成29年度春期-イメージ

COBOL(コボル)言語の平成29年度春期の出題内容

基本情報技術者試験のCOBOLの問題はプログラムの説明とプログラムを読んで、設問1、2の内容に答えていく形となります。

平成29年度春期で出題されたプログラムは、順ファイルで記録されている売上データを集計して、別のマスタファイルに出力していく処理となります。

プログラムでは整列(ソート)を用いた集計処理やCOBOLの基本となるコントロールブレイクの処理の内容を問うことで、COBOLプログラムを作成するための能力が評価されます。

ここで出題される順ファイルで記憶されたデータを、整列処理を用いて集計し、別のマスタファイルに出力する処理は実際の業務プログラムでもよく使用されます。

プログラムの説明をよく理解して、売上データを処理する流れを把握していれば問題を解くのはそう難しくありません。

COBOL(コボル)言語の平成29年度春期問題

ここでは平成29年度春期の午後に出題された、プログラムに必要な内容を穴埋めしていく問題をみてみましょう。回答の解説から問題の理解を深めましょう。

■プログラムの説明

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

試験-平成29年度春期-売上伝票ファイルのレコード様式

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

① 売上伝票ファイルには,前年度の全支店の売上データが,順不同で格納されている。

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

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

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

試験-平成29年度春期-売上マスタファイルのレコード様式

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

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

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

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

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

■プログラム(1 / 2)

試験-平成29年度春期-プログラム1

■プログラム(2 / 2)

試験-平成29年度春期-プログラム2

出典:平成29年度春期 COBOL試験区分 午後 問10 設問1

■設問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)

■解答

設問1(a) :ウ

設問1(b) :イ

設問1(c) :エ

設問1(d) :ア

【aの解説】

打上伝票ファイルのレコードを取得し、レコードが順不同で格納されているため、整列ファイルを使用してレコードの並び替えを実行しています。マスタファイルの主キーは売上年月であるため、基本項目に売上年月が定義された集団項目SRT-DATEを使用してソートを行います。

【bの解説】

整列されたデータ順にマスタファイルに出力を行う前段階で、整列ファイルをレコードごとに読み込み、ファイル終端でない限りADD-PROCの処理が実行されます。ADD-PROCでは整列されたデータをマスタファイルに書き込むための条件として、マスタファイルの売上年月と整列ファイルの売上年月比較し、一致しなかったら出力を行います。そのため、条件式は「MST-YYYYMM NOT = SRT-YYYYMM」となります。

【cの解説】

cの処理では支店別売上金額を取得するために、売上伝票ファイルから取得した各支店の売上金額をレコードごとに「ADD SRT-AMOUNT TO MST-BRANCH(SRT-BRANCH)」の処理で取得しています。

支店別の売上金額は配列MST-BRANCHに、支店番号SRT-BRANCHを指定して格納しています。

【dの解説】

dの処理ではPERFORM文による繰り返し処理を8回繰り返し、取得した各支店の売上金額を売上金額の合計を集計するデータ項目MST-AMOUNTに1レコードずつ集計しています。

練習問題

ここでは練習問題にチャレンジしてみましょう。

問)

平成29年度春期COBOLのプログラムにおいて、手続き部(PROCEDURE DIVISION)から始まる処理内容について簡単に説明してください。

答え)

マスタファイルをオープンし、整列処理を行うための主キーである売上年月を指定して売上伝票ファイルからレコードを取得する。

RET-PROCの処理では整列用ファイルの終端に達するまでADD-PROCの処理を繰り返し行い、マスタファイルと整列ファイルの売上年月と比較し、一致しなかったらWRI-PROCの処理にて各支店ごとの売上金額の合計金額の取得とマスタファイルへのレコードの書き込みを行う。

ここでは、平成29年度春期のCOBOLの出題内容について解説しました。

プログラムの内容からも分かるように、出題される内容はファイルの読込みや書き込み、並列処理など最も基本的な内容が出題されています。

そのためファイル操作や並列処理の基礎を理解し、落ち着いてプログラムの内容を読み解いていけば、答えを導き出すことは十分に可能です。

【未経験者歓迎】COBOLプログラマー・システムエンジニアの募集

株式会社COBOLの求人・転職・募集情報を見る

COBOL入門のカテゴリー

取引企業様 募集中
COBOL技術者 募集
COBOL魂
読者採用
COBOL入門