【COBOL言語】基本情報技術者試験と過去問題-平成27年度秋期-|合格対策
COBOL(コボル)言語の平成27年度秋期問題の解き方とは
※情報処理推進機構(IPA)は、午後の試験で選択できるプログラミング言語のうち、「COBOL」の出題を令和元年秋期試験で廃止しました。
COBOL(コボル)言語の平成27年度秋期の出題内容
基本情報技術者試験のCOBOLの問題は、プログラムの説明とプログラムを読んで、設問1、2の内容に答えていく形となります。
平成27年度秋期で出題されたプログラムは、順ファイルで記録された1,000件のアンケート結果を集計し、その集計結果をグラフにして画面出力する処理となります。
試験問題では、ファイル操作や2次元配列を利用した集計処理、COBOLの予約語やデータ編集の基本知識を問うことで、COBOLプログラムを作成するための能力が評価されます。
プログラム自体(処理の流れ)は、実際の業務プログラムでもよく利用されるものですが、試験問題という事もあって、ちょっとしたテクニックが必ず入れられています。
そういった点を事前に押さえておけば、試験当日惑わされる事なく、落ち着いて問題を解く事ができますので、しっかりとそのポイントを学習していきましょう。
COBOL(コボル)言語の平成27年度秋期問題
ここでは平成27年度秋期の午後に出題された、プログラムに必要な内容を穴埋めしていく問題をみてみましょう。また、解答の解説から問題の理解を深めましょう。
■プログラムの説明
D社では、ある製品の満足度を調べるために、アンケート調査を実施し、得られた1,000件の回答をアンケート結果に登録した。このプログラムは、アンケート結果ファイルを読み込み、集計結果をグラフで表示する。
(1) アンケート結果ファイルは、図1に示すレコード様式の順ファイルである。
① 回答IDは、一意に割り振られた0001~1000の番号である。
② 価格満足度、機能満足度及びデザイン満足度は、それぞれの満足度の高から低を5~1の5段階で評価したものである。
(2) 集計した満足度の分布をヒストグラムで表示する。図2に集計結果の表示例を示す。
① 価格(Price)、機能(Function)及びデザイン(Design)の各項目のヒストグラムを並べて表示する。
② 各ヒストグラムは、項目名の行と満足度5~1の行の6行から成る。
③ 各満足度の行は、満足度の値、その満足度の選択数、選択肢を長さで表す横棒の順に表示する。
④ 選択数は、値が0の場合以外は先行する数字0を除いて、値が0の場合は1桁の数字0を、右寄せで表示する。
⑤ 横棒は、選択数20ごとに記号“*”を一つ用いて表示する。選択数が20に満たない端数は切り捨てる。
■プログラム(1/2)
■プログラム(2/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入門のカテゴリー
1. 優良社員が多数在籍しています
2. 即日派遣、又は請負います
3. 安心価格で請負います
4. 同時、協力会社募集中です
1. 正社員
2. 契約社員
3. 個人事業主
などの
求人情報
が閲覧できます。
目指せ!COBOLダントツ一番企業。
創業当初の話や理念が閲覧できます。
応募条件
※2020年5月31日を以って、締切りました。
18歳~28歳の方。
正社員採用において、北川社長の著書『祈り方が9割』を読んで感想文を事前に提出すると、無条件で最終面接まで進むことができます。
COBOLとは、どのようなプログラミング言語なのか、初心者にもわかりやすく、文法の例をあげて解説してます。
COBOL入門の人気記事
- COBOL言語とは?プログラムの書き方やルールを解説!|基礎ガイド
- 【COBOL言語】条件分岐処理の代名詞「IF文」について知ろう|用語辞典
- COBOL言語の「MOVE文」とは?転記のルールをご紹介します|用語辞典
- COBOL言語の「STRING文」とは?文字連結の基礎知識と注意点|用語辞典
- 多枝分岐ってなに?COBOL言語の「EVALUATE文」を知ろう!|用語辞典
- COBOL言語の「PICTURE句」とは?基本事項を解説します!|用語辞典
- COBOL言語で計算処理をするなら「COMPUTE文」|用語辞典
- COBOL言語の「REDEFINES句」とは?使い方を確認しよう!|用語辞典
- 覚えておけば楽ができる?COBOL言語の「COPY文」の使い方|用語辞典
- COBOL言語の文字列操作のパターンを理解しよう!|基礎ガイド
- COBOL言語の初期化処理に重宝する「INITIALIZE文」とは?|用語辞典
- COBOL言語の「LOW-VALUE」の使い方について理解しよう!|基礎ガイド
- COBOL言語の「OCCURS句」について知ろう!学ぶべき基本とは|用語辞典
- COBOL言語初心者も安心! 難解「CALL文」をスッキリ解決|用語辞典
- COBOL言語の「PERFORM文」とは。実行制御について解説!|用語辞典
- COBOL言語の繰り返し処理のパターンを理解しよう!|基礎ガイド
- COBOL言語の「定数」の種類と使い方について理解しよう!|用語辞典
- COBOLのDBアクセスパターンを学ぼう!「FETCH」|応用ガイド
- COBOL言語の「DISPLAY文」は、ディスプレイ出力の為にある|用語辞典
- COBOL言語の「VARYING句」は便利?使用方法を学びましょう|用語辞典