![]()
平成25年 秋期 基本情報技術者 午後 問10
問10 COBOL問 10 次の COBOL プログラムの説明及びプログラムを読んで,設問1,2に答えよ。 〔プログラムの説明〕 X社では,自社の事業所内にある4面のテニスコートについて,従業員が予約やキャンセル, 空き状況の確認ができるシステムを開発することになった。このプログラムは, テニスコートの予約を受け付けるサブプログラムであり,利用希望者からの予約情報を パラメタで受け取り,予約管理ファイルで管理している予約状況と照らし合わせて, 予約結果をパラメタで呼出し元に返却する。 (1) プログラムには二つのパラメタがある。各パラメタの様式は,図1のとおりである。
![]() 図1 パラメタの様式
A 希望面数には,希望するコートの面数が格納されている。 B 希望日には,年,月,日が,それぞれ4桁,2桁,2桁の西暦で格納されている。 C 希望時刻には,希望する利用開始時刻の“時”が, 24 時間表記で格納されている。 利用可能な時間帯は8時から 17 時までであり,1時間単位で予約できる。 D 希望時間には,希望する利用時間数が格納されている。 E 結果には,希望どおりに予約できた場合は0を,予約できなかった場合は9を設定する。 F 予約コートには,予約できたコートのコート番号を設定する。例えば3番コートを 予約できた場合は 3000 を設定し,1番コートと2番コートを予約できた場合は 1200 を 設定する。予約ができなかった場合は,0000 を設定する。 G コートは1番〜4番の順に検索し,番号の小さいコートから確保する。 H 予約情報の各項目の値は呼出し側プログラムで検査するので,@〜Dで 示した範囲以外の値が設定されることはない。 (2) 予約管理ファイルは,日付を主キーとする図2に示すレコード様式の索引ファイルで, 予約状況を管理するために使用する。
![]() 図2 予約管理ファイルのレコード様式
A 予約状況の各要素には,予約済の場合は予約番号が, 予約が入っていない場合は0が格納される。 B 予約が入っていない日付をキーとするレコードは存在しない。 (行番号) 1 DATA DIVISION. 2 FILE SECTION. 3 FD RSV-FILE. 4 01 RSV-REC. 5 02 RSV-DATE PIC X(8). 6 02 RSV-AREA. 7 03 RSV-COURT OCCURS 4. 8 04 RSV-RNO PIC 9(6) OCCURS 9. 9 WORKING-STORAGE SECTION. 10 77 W-CHK PIC 9(1). 11 88 CHK-OK VALUE 0. 12 88 CHK-NG VALUE 1. 13 77 COURT-CNT PIC 9(1). 14 77 TIME-CNT PIC 9(2). 15 77 TIME-START PIC 9(2). 16 77 TIME-END PIC 9(2). 17 77 KEEP-COURT PIC 9(1). 18 77 BKUP-AREA PIC X(54). 19 LINKAGE SECTION. 20 01 PRM-DATA. 21 02 PRM-RNO PIC 9(6). 22 02 PRM-NUM PIC 9(1). 23 02 PRM-DATE PIC 9(8). 24 02 PRM-TIME PIC 9(2). 25 02 PRM-HOURS PIC 9(1). 26 01 RET-DATA. 27 02 RET-RSLT PIC 9(1). 28 88 RSV-OK VALUE 0. 29 88 RSV-NG VALUE 9. 30 02 RET-COURT. 31 03 COURT-NO PIC 9(1) OCCURS 4. 32 PROCEDURE DIVISION USING PRM-DATA RET-DATA. 33 MAIN-PROC. 34 SET RSV-OK TO TRUE. 35 INITIALIZE RET-COURT. 36 OPEN I-O RSV-FILE. 37 MOVE PRM-DATE TO RSV-DATE. 38 READ RSV-FILE 39 INVALID KEY INITIALIZE RSV-AREA 40 MOVE PRM-DATE TO RSV-DATE 41 PERFORM RSV-PROC 42 WRITE RSV-REC END-WRITE 43 NOT INVALID KEY PERFORM RSV-PROC 44 IF RSV-OK THEN 45 REWRITE RSV-REC END-REWRITE 46 END-IF 47 END-READ. 48 CLOSE RSV-FILE. 49 EXIT PROGRAM. 50 RSV-PROC. 51 MOVE ZERO TO KEEP-COURT. 52
設問1 プログラム中の a〜c に関する解答群 イ MOVE BKUP-AREA TO RSV-COURT(COURT-CNT) ウ MOVE COURT-CNT TO KEEP-COURT エ MOVE PRM-TIME TO TIME-CNT オ MOVE RSV-RNO(COURT-CNT TIME-CNT) TO PRM-RNO カ MOVE TIME-CNT TO COURT-CNT キ SET CHK-NG TO TRUE ク SET CHK-OK TO TRUE ウ KEEP-COURT NOT = ZER0 エ PRM-NUM NOT = KEEP-COURT オ PRM-NUM = KEEP-COURT
設問2 システムの運用を開始したところ, “隣り合わせのコートを希望する機能が欲しい”との要望が挙がった。 コートは図3に示すとおりに配置されていて,2面を予約した利用者にフェンスを 挟んだコート,例えば1番コートと3番コートが割り当てられたことがあったためである。
パラメタにデータ項目 PRM-NEXT を追加し,1が設定されている場合,
確保できたコートがフェンスを挟んでいたら予約はせずに,結果に4を
設定して返却するようにプログラムを変更する。ただし,3面以上の予約だった場合は,
フェンスを挟んでいても予約する。表1中の
![]() 図3 テニスコートの配置
e〜g に関する解答群 イ (COURT-CNT = 3 OR 4) ウ (COURT-NO(1) = 1 OR 3) エ NEXT-OFF オ NEXT-ON カ PRM-NUM = 2 キ RSV-OK
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||||