平成28年 春期 基本情報技術者 午後 問10
問10 COBOL次の COBOL プログラムの説明及びプログラムを読んで,設問1,2に答えよ。 〔プログラムの説明〕 Z社では,従業員向けの福利厚生施設として,6部屋の客室を有する保養所を運営している。 1部屋には4人まで宿泊可能で,宿泊希望者は1〜6までの部屋数を指定できる。 宿泊日数は1泊だけである。このプログラムは宿泊予約を管理するサブプログラムであり, 予約情報を受け取り,予約結果を呼出し元へ返す。 (1) このプログラムのパラメタは二つで,各パラメタの様式は,図1のとおりである。
図1 パラメタの様式
A 希望日には,宿泊する日の年,月,日が,それぞれ西暦の4桁,2桁,2桁で格納されている。 B 部屋数には,希望する部屋数が格納されている。 C 結果には,希望どおりに予約できた場合は 0 を,できなかった場合は 9 を設定する。 D 空き部屋数には,希望どおりに予約できなかった場合に,希望日の空き部屋数を設定する。 例えば,3部屋を希望している場合に2部屋しか空きがなかったときは,2を設定する。 希望どおりに予約できた場合は,0 を設定する。 E 予約情報に誤りはないものとする。 (2) 予約ファイルは, 日付を主キーとする図2に示すレコード様式の索引ファイルであり,予約状況を管理する。
図2 予約ファイルのレコード様式
A 部屋1〜6のうち,予約済みの部屋には予約番号が格納される。 予約が入っていない部屋には 0 が格納されている。 B 予約が1部屋も入っていない日のレコードは存在しない。
〔プログラム〕 1 DATA DIVISION. 2 FILE SECTION. 3 FD RSV-FILE. 4 Ø1 RSV-REC. 5 Ø2 RSV-DATE PIC X(8). 6 Ø2 RSV-ROOM OCCURS 6. 7 Ø3 RSV-NO PIC 9(6). 8 WORKING-STORAGE SECTION. 9 77 CNT PIC 9(1). 1Ø 77 GET-ROOM PIC 9(1). 1l LINKAGE SECTION. 12 Ø1 PRM1. 13 Ø2 PRM-NO PIC 9(6). 14 Ø2 PRM-DATE PIC 9(3). 15 Ø2 PRM-ROOM PIC 9(1). 16 Ø1 PRM2. 17 Ø2 PRM-RSLT PIC 9(1). 18 Ø2 PRM-FREE PIC 9(1). 19 PROCEDURE DIVISION USING PRM1 PRM2. 2Ø MAIN-PROC. 21 OPEN I-O RSV-FILE. 22 MOVE PRM-DATE TO RSV-DATE. 23 READ RSV-FILE INVALID KEY PERFORM RSV-PROC 24 NOT INVALID KEY PERFORM CHK-PROC 25 END-READ. 26 CLOSE RSV-FILE. 27 EXIT PROGRAM. 28 RSV-PROC. 29 INITIALIZE RSV-REC. 3Ø MOVE PRM-DATE TO RSV-DATE. 31 PERFORM VARYING CNT FROM 1 BY 1 UNTIL CNT > PRM-ROOM 32 33 END-PERFORM. 34 WRITE RSV-REC. 35 MOVE ZERO TO PRM-RSLT PRM-FREE. 36 CHK-PROC. 37 MOVE ZERO TO GET-ROOM PRM-FREE. 38 PERFORM VARYING CNT FROM 1 BY 1 UNTIL 39 IF RSV-NO(CNT) = ZERO THEN 4Ø IF PRV-ROOM > GET-ROOM THEN 41 MOVE PRM-NO TO RSV-NO(CNT) 42 ADD 1 TO GET-ROOM 43 END-IF 44 ADD 1 TO PRM-FREE 45 END-IF 46 END-PERFORM. 47 IF THEN 48 REWRITE RSV-REC 49 MOVE ZERO TO PRM-RSLT PRM-FREE 5Ø ELSE 51 MOVE 9 TO PRM-RSLT 52 END-IF.設問1 プログラム中の に入れる正しい答えを,解答群の中から選べ。 a に関する解答群 イ ADD 1 TO PRM-FREE ウ MOVE PRM-NO TO RSV-NO(CNT) エ MOVE ZERO TO RSV-NO(CNT) b,c に関する解答群 ウ CNT > PRM-ROOM エ GET-ROOM < PRM-ROOM オ GET-ROOM = PRM-ROOM カ GET-ROOM > PRM-ROOM
d に関する解答群 ウ 行番号 37 と 38 の間 エ 行番号 46 と 47 の間 e に関する解答群 イ COMPUTE CAN-DD = MONTH-ELM(CAN-MM - 1) - 7 ウ COMPUTE CAN-DD = MONTH-ELM(CAN-MM) + CAN-DD - 7 エ SUBTRACT 7 FROM CAN-DD f に関する解答群 イ QUOTIENT > 4ØØ ウ URU-SUPPLY = ZERO エ URU-SUPPLY NOT = ZERO
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||||||||