【COBOL言語】基本情報技術者試験と過去問題-平成23年度秋期-|合格対策
基本情報技術者試験(平成23年度秋期)午後問題のCOBOL言語での解き方とは
※情報処理推進機構(IPA)は、午後の試験で選択できるプログラミング言語のうち、「COBOL」の出題を令和元年秋期試験で廃止しました。
COBOL(コボル)言語の平成23年度秋期の出題内容
基本情報技術者試験(平成23年度秋期)COBOL言語の午後問題は、受験の申し込み登録したファイルから受験区分別の申込者数を集計し、集計表を出力するプログラムに関する穴埋め問題と、そのプログラムを申込者が多い人数順に出力できるように変更する穴埋め問題でした。出題形式は、まずプログラムの説明を読み仕様を理解し、その仕様を実現したプログラムを読み込んでから、設問に解答する形式で、複数の解答の中から正しい解答を選択します。
設問1ではSEARCH文を用いた配列の検索処理と、2次元配列を用いた集計処理の理解度が試され、設問2ではSORT文を用いた並べ替え処理の理解度が試されています。プログラムを見ると難しそうですが、SEARCH文、SORT文、2次元配列の構造と使い方を理解していれば、設問に解答することができる出題内容です。
COBOL(コボル)言語の平成23年度秋期問題
この章では、基本情報技術者試験(平成23年度秋期)COBOL言語の午後問題の問10の設問1(配列の検索と2次元配列への集計問題)について解説しますので、配列の検索方法と、2次元配列への集計処理のパターンを理解しましょう。
■プログラムの説明
受験の申込みを登録した申込ファイルから、受験区分別に申込者の人数を集計し、集計表を印字するプログラムである。
(1) 申込ファイルは、図1に示すレコード様式の順ファイルである。
図1.申込ファイルのレコード様式
① 受験の申込み1件に対して、1件のレコードが作成され、5桁の申込番号が付与される。
② 受験区分は、試験区分と開催地区分から構成される。
③ 試験区分は、試験内容に対応付けたA~Hのいずれか1文字である。
④ 開催地区分は、開催地に対応付けた01~20のいずれかの数字である。
⑤ 各受験区分の申込者数は、999人以下である。
⑥ 申込ファイルの内容には、誤りはないものとする。
(2) 集計表の印字例は、図2のとおりである。申込者がいない受験区分は、印字しない。
図2.集計表の印字例
■プログラム
出典:23年度秋期 COBOL 試験区分 午後 問10 設問1
■設問1 プログラムの中の[ ]に入れる正しい答えを、解答群の中から選べ。
aに関する解答群
(ア)MOVE 1 TO TEST-IDX
(イ)MOVE 1 TO TEST-NO
(ウ)MOVE TEST-IDX TO TEST-NO
(エ)SET TEST-IDX TO 1
(オ)SET TEST-IDX TO TEST-CATEG-S
(カ)SET TEST-IDX TO TEST-NO
bに関する解答群
(ア)SUM-WK
(イ)TEST-IDX
(ウ)TEST-NO
(エ)TEST-W1
(オ)TEST-W2
(カ)TEST-W3
cに関する解答群
(ア)SUM-WK(LOOP1 LOOP2)
(イ)SUM-WK(LOOP2 LOOP1)
(ウ)SUM-WK(TEST-CATEG-M TEST-NO)
(エ)SUM-WK(TEST-NO TEST-PLACE-M)
(オ)SUM-WK(TEST-PLACE-M TEST-NO)
(カ)SUM-WK(TEST-PLACE-S TEST-NO)
■解答
設問1-a:(エ)
設問1-b:(カ)
設問1-c:(ア)
【aの解説】
この設問に解答するために理解しておかなければならないのは、WORKING-STORAGE SECTIONで定義されている配列の目的です。
プログラムの説明(1)③で試験区分は、“A”~“H”のいずれか1文字であると説明されています。23行目で定義されている「TEST-W2」の値は”ABCDEFGH“で、試験区分が取り得る値の全てであることに着目してください。さらに「TEST-W2」は、24、25行目で、「TEST-IDX」というインデックス項目が指定された配列「TEST-W3」に再定義されていますので、配列「TEST-W3」は、試験区分が取り得る全ての値を格納した配列であり、SEARCH文による試験区分の検索に使用するために定義されていることになります。
SEARCH文は、検索を実行する前に、検索する配列を定義したときに「INDEXED BY」で指定した検索用のインデックス項目に、検索を開始するインデックス番号をSET文で設定しなければなりません。[a]の直後の行(45行目)から始まるSEARCH文のWHEN句で、検索条件に配列「TEST-W3」が使用されていることから、配列「TEST-W3」を定義したときに指定したインデックス項目である「TEST-IDX」に、検索を開始するインデックス番号を設定する必要があることがわかります。
従って、解答は「(エ)SET TEST-IDX TO 1」になります。
【bの解説】
SEARCH文の書式では、「SEARCH」のあとに検索する配列名を記述します。[b]のSEARCH文では、WHEN句の検索条件に配列「TEST-W3」を使用していることから、検索する配列名が「TEST-W3」であることが導かれます。
従って、解答は「(カ)TEST-W3」になります。
【cの解説】
[c]があるPRINT-PROCでは、1次元目を試験区分、2次元目を開催地区分にした8×20の2次元配列「SUM-WK」に集計した受験区分(試験区分+開催地区分)別の申込者数を印字しています。
プログラムの説明(2)に、申込者がいない受験区分は印字しないと明記されていますので、[c]を含むIF文では、集計した受験区分(試験区分+開催地区分)別の申込者数が0人であるかを判定しなければなりません。
従って、解答は「(ア)SUM-WK(LOOP1 LOOP2)」になります。
練習問題
前章の「COBOL(コボル)言語の平成23年度秋期問題」では、基本情報技術者試験(平成23年度秋期)COBOL言語の午後問題の問10の設問1について解説しました。この章では、その解説を踏まえて、さらにプログラムの理解を深めるための練習問題に挑戦してみましょう。
問)
基本情報技術者試験(平成23年度秋期)午後問題の問10のCOBOL言語プログラムを読み、手続き部(PROCEDURE DIVISION)全体の処理内容と各処理ブロックの処理内容を簡単に説明せよ。
答え)
【全体】
受験の申込みを登録した申込みファイルから、受験区分ごとの受験者数を集計用の2次元配列に集計したのち、集計結果を印字する。
【MAIN-PROC】
申込ファイルを読み出しモードで、印刷ファイルを書き込みモードでオープンし、PERFORM文で受験区分ごとの受験者数を集計する処理(SUM-PROC)を行ったのち、PERFORM文で集計結果を印字する処理(PRINT-PROC)を行う。申込ファイル、印刷ファイルをクローズする。
【SUM-PROC】
申込ファイルをシーケンシャルに読み込み、EOFになるまで、1次元目を試験区分に、2次元目を開催地区分にした8×20の集計用の2次元配列に申込者数を集計する。
【PRINT-PROC】
1次元目を試験区分に、2次元目を開催地区分にした8×20の集計用の2次元配列から印字申込者数を取得し、受験者がいる受験区分について、受験区分と受験者数を印刷する。
基本情報技術者試験(平成23年度秋期)では、SEARCH文を用いた配列の検索、2次元配列への集計、SORT文を用いた配列のソートが出題されました。SEARCH文、SORT文、多次元配列は、実務でも使われる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句」は便利?使用方法を学びましょう|用語辞典