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

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

〔プログラムの説明〕

ある会社では,社員が英語と情報処理技術についてどのような能力を保有しているかを, 資格技能ファイルで管理している。 年に一度,英語テストの最新の点数及び過去1年間に取得した情報処理技術の 資格情報を資格技能ファイルに反映させる更新処理を行う。 更新処理では,まず,英語テストの最新の点数を英語点数ファイルに記録し, 資格情報を情報処理技術認定ファイルに記録する。 その上で,旧資格技能ファイルに英語点数ファイルと 情報処理技術認定ファイルとを突き合わせ,新資格技能ファイルを作成する。

(1) 新旧の資格技能ファイル N-SHIKAKUF,O-SHIKAKUF のレコード様式は, 次のとおりである。

社員番号
6 けた
英語の点数
3 けた
情報処理技術資格情報
区分領域 1
2 けた
区分領域 2
2 けた
区分領域 13
2 けた

@ 全社員のレコードが存在し,社員番号の昇順に整列された順ファイルである。

A 英語テストは入社時に全員受験しており,英語の点数は必ず記録されている。 情報処理技術資格情報は,資格を取得している場合に記録され, 取得していない場合は空白が記録されている。

B 英語点数ファイルにデータがあれば,英語の点数を更新する。 点数は 0 〜 999
点の範囲である。

C 情報処理技術資格は,全部で 13 区分あり,合格した区分を 2けたのコードで区分領域 1 〜 13 の先頭から記録する。 区分が記録されていない区分領域は空白である。

D 情報処理技術認定ファイルにデータがあれば, 新資格技能ファイルの最初の空白の区分領域に追加する。

(2) 英語点数ファイル EIGOF のレコード様式は,次のとおりである。

社員番号
6けた
英語の点数
3けた

@ 社員番号の昇順に整列された順ファイルである。

A 受験した社員のレコードだけが存在する。 また,1年間に複数回受験していても,過去のデータを無条件で置き換えているので, 最後に受験したときの点数を記録したレコードだけが存在する。

B 旧資格技能ファイルに存在しない社員番号のレコードがあったときは, エラーメッセージを出力する。

(3) 情報処理技術認定ファイル JOHOF のレコード様式は,次のとおりである。

社員番号
6 けた
区分
2 けた

@ 社員番号の昇順に整列された順ファイルである。

A 1年間に新たに資格を取得した社員のレコードだけが存在する。 また,1 人につき複数レコードが存在することがあるが,区分は異なる。

B 旧資格技能ファイルに存在しない社員番号のレコードがあったときは, エラーメッセージを出力する。

C 旧資格技能ファイルに,同一区分が記録済みであったときは,エラーメッセージを出力する。

〔プログラム〕

DATA DIVISION.
FILE SECTION.
FD  O-SHIKAKUF.
01  O-R                    PIC X(35).
FD  N-SHIKAKUF.
01  N-R                    PIC X(35).
FD  EIGOF.
01  E-R.
    03  E-SBANGO           PIC X(6).
    03  E-TEN              PIC 9(3).
FD  JOHOF.
01  J-R.
    03  J-SBANGO           PIC X(6).
    03  J-KUBUN            PIC X(2).
WORKING-STORAGE SECTION.
01  W-R.
    03  W-SBANGO           PIC X(6).
    03  W-EIGO             PIC 9(3).
    03  W-JOHO.
        05  W-KUBUN-A      PIC X(2) OCCURS 13 INDEXED BY N.
01  W-E-SBANGO             PIC X(6).
01  W-J-SBANGO             PIC X(6).
PROCEDURE DIVISION.
HAJIME.
    OPEN INPUT O-SHIKAKUF EIGOF JOHOF OUTPUT N-SHIKAKUF.
    PERFORM READ-O-SHIKAKUF.
    PERFORM READ-EIGOF.
    PERFORM READ-JOHOF.
    PERFORM UNTIL 
       EVALUATE TRUE 
          WHEN W-SBANGO = W-E-SBANGO AND NOT = HIGH-VALUE
             
          WHEN W-SBANGO < W-E-SBANGO
             
          WHEN W-SBANGO > W-E-SBANGO
             
       END-EVALUATE
       EVALUATE TRUE
          WHEN W-SBANGO = W-J-SBANGO AND NOT = HIGH-VALUE
             PERFORM J-RTN
          WHEN W-SBANGO < W-J-SBANGO
             CONTINUE
          WHEN W-SBANGO > W-J-SBANGO
             DISPLAY "ERROR JOHO  ", W-J-SBANGO
             PERFORM READ-JOHOF
       END-EVALUATE
       IF W-SBANGO < W-E-SBANGO AND W-J-SBANGO
          WRITE N-R FROM W-R
          PERFORM READ-O-SHIKAKUF
       END-IF
    END-PERFORM.
    CL OS E O-SHIKAKUF EIGOF JOHOF N-SHIKAKUF.
    STOP RUN.
E-RTN.
    MOVE E-TEN TO W-EIGO.
J-RTN.
    PERFORM UNTIL 
       PERFORM VARYING N FROM 1 BY 1 
               UNTIL N > 13 OR J-KUBUN = W-KUBUN-A(N)
               OR W-KUBUN-A(N) = SPACE
          CONTINUE
       END-PERFORM
       IF N < 14 AND W-KUBUN-A(N) = SPACE
          MOVE J-KUBUN TO W-KUBUN-A(N)
       ELSE 
          DISPLAY "ERROR KUBUN  ", J-R
       END-IF
       PERFORM READ-JOHOF
    END-PERFORM.
READ-O-SHIKAKUF.
    READ O-SHIKAKUF
       AT END MOVE HIGH-VALUE TO W-SBANGO
       NOT AT END MOVE O-R TO W-R
    END-READ.
READ-EIGOF.
    READ EIGOF 
       AT END MOVE HIGH-VALUE TO W-E-SBANGO
       NOT AT END MOVE E-SBANGO TO W-E-SBANGO
    END-READ.
READ-JOHOF.
    READ JOHOF
       AT END MOVE HIGH-VALUE TO W-J-SBANGO
       NOT AT END MOVE J-SBANGO TO W-J-SBANGO
    END-READ.

基本情報技術者試験


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

a に関する解答群

ア W-SBANGO = HIGH-VALUE

イ W-SBANGO = HIGH-VALUE AND W-E-SBANGO = HIGH-VALUE
  AND W-J-SBANGO = HIGH-VALUE

ウ W-SBANGO = HIGH-VALUE OR W-E-SBANGO = HIGH-VALUE
  AND W-J-SBANGO = HIGH-VALUE

エ W-SBANGO = HIGH-VALUE OR W-E-SBANGO = HIGH-VALUE
  OR W-J-SBANGO = HIGH-VALUE

b 〜 d に関する解答群

ア CONTINUE

イ DISPLAY "ERROR EIGO ", W-E-SBANGO

ウ DISPLAY "ERROR EIGO ", W-E-SBANGO
  PERFORM READ-EIGOF

エ DISPLAY "ERROR EIGO ", W-E-SBANGO
  PERFORM READ-JOHOF

オ PERFORM E-RTN

カ PERFORM E-RTN
  PERFORM READ-EIGOF

キ PERFORM E-RTN
  PERFORM READ-EIGOF
  PERFORM READ-JOHOF

ク PERFORM E-RTN
  PERFORM READ-JOHOF

ケ PERFORM READ-EIGOF

コ PERFORM READ-EIGOF
  PERFORM READ-JOHOF

e に関する解答群

ア W-J-SBANGO = E-SBANGO

イ W-J-SBANGO = J-SBANGO

ウ W-J-SBANGO = W-SBANGO

エ W-J-SBANGO NOT = W-SBANGO

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

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

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

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

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


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