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

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

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

試験-平成28年度秋期-イメージ

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

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

平成27年度秋期で出題されたプログラムは、順ファイルで記録された1,000件のアンケート結果を集計し、その集計結果をグラフにして画面出力する処理となります。

試験問題では、ファイル操作や2次元配列を利用した集計処理、COBOLの予約語やデータ編集の基本知識を問うことで、COBOLプログラムを作成するための能力が評価されます。

プログラム自体(処理の流れ)は、実際の業務プログラムでもよく利用されるものですが、試験問題という事もあって、ちょっとしたテクニックが必ず入れられています。

そういった点を事前に押さえておけば、試験当日惑わされる事なく、落ち着いて問題を解く事ができますので、しっかりとそのポイントを学習していきましょう。

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

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

■プログラムの説明

D社では、ある製品の満足度を調べるために、アンケート調査を実施し、得られた1,000件の回答をアンケート結果に登録した。このプログラムは、アンケート結果ファイルを読み込み、集計結果をグラフで表示する。

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

試験-平成27年度秋期-アンケート結果ファイルのレコード様式

① 回答IDは、一意に割り振られた0001~1000の番号である。

② 価格満足度、機能満足度及びデザイン満足度は、それぞれの満足度の高から低を5~1の5段階で評価したものである。

(2)  集計した満足度の分布をヒストグラムで表示する。図2に集計結果の表示例を示す。

① 価格(Price)、機能(Function)及びデザイン(Design)の各項目のヒストグラムを並べて表示する。

② 各ヒストグラムは、項目名の行と満足度5~1の行の6行から成る。

③ 各満足度の行は、満足度の値、その満足度の選択数、選択肢を長さで表す横棒の順に表示する。

④ 選択数は、値が0の場合以外は先行する数字0を除いて、値が0の場合は1桁の数字0を、右寄せで表示する。

⑤ 横棒は、選択数20ごとに記号“*”を一つ用いて表示する。選択数が20に満たない端数は切り捨てる。

試験-平成27年度秋期-集計結果の表示例

■プログラム(1/2)

試験-平成27年度秋期-プログラム1

■プログラム(2/2)

試験-平成27年度秋期-プログラム2

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

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

aに関する解答群

ア 9(4)   イ B(3)9   ウ Z(3)9   エ Z(4)

bに関する解答群

ア CNT-NUM(6 - I, J)   イ CNT-NUM(I, 5 - J)

ウ CNT-NUM(I, 6 - J)   エ CNT-NUM(I, J)

cに関する解答群

ア 1:PLOT-NUM      イ 1:PLOT-NUM + 1

ウ PLOT-NUM       エ PLOT-NUM + 1

dに関する解答群

ア HIST-NUM   イ HIST-PLOT   ウ HIST-REC   
エ HIST-VAL

■解答

設問1(a):ウ

設問1(b):エ

設問1(c):ア

設問1(d):ウ

【aの解説】

HIST-RECのデータ定義が何かを問われた問題です。このデータ定義は設問中の「⑤ 横棒は、選択数20ごとに記号“*”を一つ用いて表示する。選択数が20に満たない端数は切り捨てる。」がヒントになっていて、これが「HIST-PLOT PIC X(50)」にあたる事だとわかると、ヒストグラムの表示に利用された定義だということに気付けます。

また、図2を参照すると「HIST-NUM」は選択数である事がわかり、選択数は最大1,000の4桁である事と「④選択数は、値が0の場合以外は先行する数字0を除いて、値が0の場合は1桁の数字0を、右寄せで表示する。」を満たす解答という事で、指定した桁数に満たない場合にゼロサプレスする「Z」定義と、必ず1桁表示するという事で「9」定義を満たす「Z(3)9」が正解という事がわかります。

【bの解説】

aの問題で、HIST-RECがヒストグラムのデータ定義で、HIST-NUMが選択数という事がわかりました。選択数は、「価格満足度、機能満足度、デザイン満足度という3段階の評価項目(I)と1~5の5段階の満足度(J)」ごとに求める必要があり、また、今回はファイルのREAD処理の繰り返しで、データをカウントして選択数を求める必要がありますので、「ADD 1 TO CNT-NUM(I, J)」として、評価項目、満足度ごとに選択数をカウントし結果を格納していく必要があります。

【cの解説】

bの問題で、記号“*”の設定数をDIVIDE文(選択数/20 = PLOT-NUM)で求めている事がわかっていますので、1桁目から設定数まで 記号“*”を埋める処理「MOVE ALL “*” TO HIST-PLOT(1:PLOT-NUM)」が正解となります。HIST-PLOT(1:PLOT-NUM)がデータの範囲を指定する記述方法という事がわかっていれば難しくありません。

【dの解説】

dはヒストグラムを表示するために必要な項目という事になります。ここまで理解されている方は、特に解説不要でしょう。

【その他解説】

COBOLは通常レベル1~49でデータ項目やその階層の定義をしますが、特殊なレベル番号が存在します。

今回はレベル番号77と88が定義されていますので、その解説を追記しておきます。

レベル番号77:データ項目がどの集団項目にも属さない単独のものである事を定義します。

レベル番号88:条件判断文を簡略化し、読みやすくするために利用されます。条件名と条件を満たす値で定義します。

練習問題

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

問)

平成27年度秋期COBOLのプログラムにおいて、ヒストグラムの表示を「満足度1~5」の順で表示するためにはどこを修正すれば良いでしょう?

解答)

54行目を「PERFORM VARYING J FROM 1 BY 1 UNTIL J > 5」とする。

解説)

PERFORM VARYINGは添字を利用した繰り返し処理です。

「PERFORM VARYING 添字 FROM 初期値 BY 増分値 UNTIL 終了条件」で定義され、試験問題では「満足度5~1」で表示するため、「初期値=5、増分値=-1、終了条件J=0」で定義されています。今回はその順番を逆転させるので、「初期値=1、増分値=1、終了条件J>5」と定義すればいいわけです。

今回は、平成27年度秋期のCOBOLの出題内容について解説しました。

出題されたプログラムから見ても、処理自体は実際の業務プログラムで利用されるものの組み合わせという事が理解いただけたと思います。ただし、毎回ちょっとしたテクニックが入れられていますので、それに惑わされないように気をつけていただければと思います。

この記事を読んだ人は、こちらの記事も読んでいます

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

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

COBOL入門のカテゴリー

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