東京理科大学 infoserv[更新日]2001.11.05


問7 次の COBOL プログラムの説明及びプログラムを読んで,設問 1,2 に答えよ。

〔プログラムの説明〕

A 社では,社員の必須研修コースの修了条件を出席率 80% 以上と定めている。 年度末に年間受講履歴ファイルに登録されている出席状況から, 修了したかどうかを判定する。

(1) 年間受講履歴ファイル(4 月〜翌年 3 月)のレコード様式は,次のとおりである。

受講番号

修了判定

授業回数

出席状況

研修コード

社員番号

第 1 回

第 15 回

6 けた

6 けた

1 けた

2 けた

1 けた

1 けた

 受講番号をキーとする索引ファイルである。

 授業回数には研修の授業の実施回数が記録されており, 各研修の授業回数は 1 〜 15 である。

(2) 年間受講履歴ファイルに対する処理は,次のとおりである。

 年度始めに,出席状況(第 1 〜 15 回)をすべて 0 にする。

 社員の授業への出席状況(1:出席, 0:欠席)を回ごとに記録する。

 年度末に出席状況を確認して,授業回数の 80% 以上の出席があった場合は 修了判定を“Y”にし,80% 未満の場合は“N”にする。

〔プログラム〕

DATA DIVISION.
FILE SECTION.
FD  ATTENDANCE-F.
01  ATTENDANCE-R.
    03  A-ID.
        05 A-COURSE   PIC X(6).
        05 A-EMPLOYEE PIC X(6).
    03  A-COMPLETION  PIC X.       
    03  A-SESSIONS    PIC 9(2).
    03  A-STATUS.
          05  A-ATTENDANCE OCCURS 15 PIC X.
WORKING-STORAGE SECTION.
01  W-ATTENDANCE      PIC 9(2).
01  END-SW            PIC X VALUE SPACE.
01  W-COMPLETION      PIC 9(3).
PROCEDURE DIVISION.
START-RTN.
    OPEN I-O ATTENDANCE-F.
    PERFORM UNTIL END-SW = "E"
       READ ATTENDANCE-F 
          AT END MOVE "E" TO END-SW
          NOT AT END PERFORM CHECK-RTN
       END-READ
    END-PERFORM.
    CLOSE ATTENDANCE-F.
    STOP RUN.
CHECK-RTN.
    MOVE ZERO TO W-ATTENDANCE.
    INSPECT  TALLYING W-ATTENDANCE FOR ALL "1".
    COMPUTE W-COMPLETION = A-SESSIONS * 8.
    IF  THEN
       MOVE "Y" TO A-COMPLETION
    ELSE 
       MOVE "N" TO A-COMPLETION
    END-IF.
    REWRITE ATTENDANCE-R
         INVALID DISPLAY "REWRITE ERROR", A-ID.

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

a に関する解答群

ア A-ATTENDANCE    イ A-STATUS

ウ ATTENDANCE-F    エ ATTENDANCE-R

b に関する解答群

ア W-ATTENDANCE * 10 >= W-COMPLETION

イ W-ATTENDANCE >= W-COMPLETION * 0.8

ウ W-COMPLETION >= W-ATTENDANCE

エ W-COMPLETION >= W-ATTENDANCE * 0.8

設問2  次の記述中の に入れる正しい答えを,解答群の中から選べ。

このプログラムは,AT END 指定の READ 文を使用して, 年間受講履歴ファイルの全レコードを書き換えている。 環境部のファイル管理段落では,ファイル編成は索引,呼出し法を とし,レコードキーとして を指定している。

解答群

ア A-COURSE    イ A-EMPLOYEE    ウ A-ID

エ 順呼出し    オ 動的呼出し    カ 乱呼出し


東京理科大学 infoserv 戻る 次頁:問08