平成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 MOVE 3 TO PRM-RTN WHEN CNT >= 99 MOVE 4 TO PRM-RTN WHEN OTHER PERFORM REC-LOG END-EVALUATE END-READ. CLOSE EMPLOYEE. REC-LOG SECTION. OPEN EXTEND LOG-FILE. MOVE PRM-EMP TO LOG-EMP. MOVE PRM-CD TO LOG-CD. MOVE FUNCTION CURRENT-DATE TO LOG-TIME. WRITE LOG-REC. CLOSE LOG-FILE. 設問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 THEN PERFORM PROC-DISP SET SRCH-END TO TRUE ELSE EVALUATE TRUE WHEN CD-ENTER PERFORM PROC-ENTER WHEN CD-EXIT PERFORM PROC-EXIT END-EVALUATE READ LOG-FILE AT END SET SRCH-END TO TRUE END-IF END-PERFORM. CLOSE LOG-FILE. EXIT PROGRAM. PROC-ENTER SECTION. PERFORM VARYING CNT FROM 1 BY 1 UNTIL CONTINUE END-PERFORM. MOVE LOG-EMP TO EMP-NO(CNT). PROC-EXIT SECTION. PERFORM VARYING CNT FROM 1 BY 1 UNTIL CONTINUE END-PERFORM. MOVE ZERO TO EMP-NO(CNT). PROC-DISP SECTION. PERFORM VARYING CNT FROM 1 BY 1 UNTIL IF EMP-NO(CNT) NOT = ZERO THEN DISPLAY EMP-NO(CNT) END-IF END-PERFORM.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-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| |||||||||