平成22年 春期 基本情報技術者 午後 問10
問10 COBOL次の COBOL プログラムの説明及びプログラムを読んで,設問1〜3に答えよ。 〔プログラム1の説明〕 G社では,セキュリティ対策のため,入退室時の ID カード操作によって資格保有者以外の 立入りを禁止し,かつ,入室者の入退室日時を記録しておくセキュリティルームを設置した。 プログラム1は,セキュリティルームを管理するシステムのサブプログラムであり, 処理コードと従業員番号を受け取って,結果コードを返す。 (1) パラメタの形式は,図1のとおりである。
図1 パラメタの形式 @ 処理コードには,入室時には1が,退室時には2が設定される。 A 結果コードには,入室時に入室を許可する場合は0を,許可しない場合は, 事象に対応するコードを設定する。退室時には0を設定する。
図2 従業員ファイルのレコード様式 @ 従業員番号には,従業員に対して一意に割り振られた8けたの数字が設定される。 ただし,従業員番号0の従業員はいない。 A 職級には,当該従業員の職級が設定される。一般社員,係長,課長,部長に対応する値として, それぞれ 1,2,3,4 が設定される。 B 一般社員及び係長の資格には,入室許可申請によって入室を許可された場合には1が, 許可されていない場合には0が設定される。課長及び部長の資格に格納される値は不定である。 (4) セキュリティルーム内に同時に在室できる人員は 99 名までとする。 (5) 入室者の入退室日時を記録する入退室ログファイルは,図3に示すレコード様式の順ファイルである。
図3 入退室ログファイルのレコード様式 @ 入退室コードには,入室記録の場合は1が,退室記録の場合は2が設定される。 A 入退室日時には,西暦の日付と 24 時間表記の時刻を格納する。この情報は, 組込み関数 CURRENT-DATE の関数値の先頭14文字を使用する。 B レコードは,入退室処理時に出力する。したがって,このファイル中の全レコードは, 入退室日時の昇順に整列されている。 C セキュリティルームを管理するシステムは,メンテナンスのため月末の深夜に一時運用を停止して, 入退室ログファイルを新しいファイルに切り換える。 なお,メンテナンス開始時はセキュリティルーム内を無人にし,完了するまで入室を禁止する。 したがって,同一人物による入室と退室のレコードは必ず対で格納される。 (6) このプログラムは,最初に呼び出されたときを除き,CANCEL 文などによって 初期状態になることはない。 (7) セキュリティルームには,本人の ID カードを使って1人ずつ入退室する。 セキュリティルームの入退室はすべて記録される。 〔プログラム1〕
DATA DIVISION.
FILE SECTION.
FD EMPLOYEE.
01 EMP-REC.
02 EMP-KEY.
03 EMP-NO PIC 9(8).
02 EMP-CLASS PIC 9(1).
02 EMP-QUAL PIC 9(1).
FD LOG-FILE.
01 LOG-REC.
02 LOG-EMP PIC 9(8).
02 LOG-CD PIC 9(1).
02 LOG-TIME PIC X(14).
WORKING-STORAGE SECTION.
01 CNT PIC 9(3) VALUE ZERO.
LINKAGE SECTION.
01 PRM.
02 PRM-CD PIC 9(1).
88 CD-ENTER VALUE 1.
88 CD-EXIT VALUE 2.
02 PRM-EMP PIC 9(8).
02 PRM-RTN PIC 9(1).
PROCEDURE DIVISION USING PRM.
CTL-PROC SECTION.
MOVE ZERO TO PRM-RTN.
EVALUATE TRUE
WHEN CD-ENTER PERFORM QUAL-CHECK
WHEN CD-EXIT PERFORM REC-LOG
SUBTRACT 1 FROM CNT
WHEN OTHER MOVE 1 TO PRM-RTN
END-EVALUATE.
EXIT PROGRAM.
QUAL-CHECK SECTION.
OPEN INPUT EMPLOYEE.
MOVE PRM-EMP TO EMP-NO.
READ EMPLOYEE
INVALID KEY
MOVE 2 TO PRM-RTN
NOT INVALID KEY
EVALUATE TRUE
WHEN
設問1 プログラム中の a に関する解答群 イ EMP-CLASS <= 2 AND EMP-QUAL = 0 ウ EMP-CLASS <= 2 OR EMP-QUAL = 0 エ EMP-QUAL = 0 b に関する解答群 ウ SET CD-ENTER TO TRUE エ SET CD-EXIT TO TRUE
設問2 パラメタで渡された従業員番号が,従業員ファイル中に存在しなかった場合に 設定する結果コードを,解答群の中から選べ。 解答群
設問3 プログラム1によって作成され,保管していた,ある月の入退室ログファイルを読み込み, 指定した日時にセキュリティルーム内にいたすべての従業員の従業員番号を 表示するプログラム2を作成した。指定した日時より前に入室し,かつ,指定した日時か, それより後に退室したすべての従業員の従業員番号を表示する。 プログラム中の に入れる正しい答えを,解答群の中から選べ。
〔プログラム2〕
DATA DIVISION.
FILE SECTION.
FD LOG-FILE.
01 LOG-REC.
02 L0G-EMP PIC 9(8).
02 LOG-CD PIC 9(1).
88 CD-ENTER VALUE 1.
88 CD-EXIT VALUE 2.
02 LOG-TIME PIC X(14).
WORKING-STORAGE SECTION.
77 CNT PIC 9(3).
77 SRCH-FLAG PIC X(1).
88 SRCH-END VALUE "E".
01 STAY-ROOM.
02 EMP-NO PIC 9(8) OCCURS 99.
LINKAGE SECTION.
01 PRM-TIME PIC X(14).
PROCEDURE DIVISION USING PRM-TIME.
MAIN-PROC SECTION.
MOVE SPACE TO SRCH-FLAG.
PERFORM VARYING CNT FROM 1 BY 1 UNTIL CNT > 99
MOVE ZERO TO EMP-NO(CNT)
END-PERFORM.
OPEN INPUT LOG-FILE.
READ LOG-FILE AT END SET SRCH-END TO TRUE.
PERFORM UNTIL SRCH-END
IF
c に関する解答群
ウ LOG-TIME = PRM-TIME エ LOG-TIME > PRM-TIME オ LOG-TIME >= PRM-TIME d 〜 f に関する解答群 ウ EMP-NO(CNT) = ZERO エ LOG-EMP = EMP-NO(CNT) オ LOG-EMP = ZERO カ LOG-EMP NOT = EMP-NO(CNT) キ L0G-EMP NOT = ZERO ク SRCH-END
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2025 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| |||||||||
