![]()
平成25年 春期 基本情報技術者 午後 問10
問10 COBOL次の COBOL プログラムの説明及びプログラムを読んで,設問1〜3に答えよ。 〔プログラムの説明〕 1993 年4月1日に創立したX社では,創立 20 周年の記念日である 2013 年4月1日に, 勤続年数が0〜 20 年の全ての従業員に特別給を支給することにした。特別給は,基本給に, 表1に示す決定表によって導出される支給係数を掛け合わせて百円未満を切り捨てた金額であり, 創立記念日に上司が現金の入った封筒を部下に手渡す。 このプログラムは,従業員ファイルに格納されている従業員の情報を読み込み, 各従業員への支給金額と,各金種の必要数を支給ファイルに出力する。ここで, 金種は1万円紙幣,5千円紙幣,千円紙幣,5百円硬貨,百円硬貨の5種類とする。
![]() (1) 従業員ファイルは,図1に示すレコード様式の順ファイルである。
図1 従業員ファイルのレコード様式 @ 役職には,一般職の場合は0,管理職の場合は1を格納する。 A 入社日には,入社した年,月,日を,それぞれ4桁,2桁,2桁の西暦で格納する。 表1に示す支給係数の決定表の条件1(勤続年数)は,入社日から 2013 年4月1日までの 経過年数とする。例えば,入社日が 2012 年4月1日の場合は1年であり, 2012 年4月2日の場合は0年である。
図2 支給ファイルのレコード様式 @ 支給金額には,基本給と支給係数から算出した支給金額を格納する。 A 金種別必要数には,それぞれの金種の必要数を格納する。 ここで,必要数の合計が最少となるようにする。 〔プログラム〕 (行番号) 1 DATA DIVISION. 2 FILE SECTION. 3 FD EMP-F. 4 01 E-REC. 5 02 E-NO PIC 9(6). 6 02 E-STATUS PIC 9(1). 7 88 NON-MANAGER VALUE 0. 8 88 MANAGER VALUE 1. 9 02 E-JOIN. 10 03 E-YEAR PIC 9(4). 11 03 E-MMDD PIC 9(4) 12 02 E-BASE PIC 9(6). 13 FD PAY-F. 14 01 P-REC. 15 02 P-NO PIC 9(6). 16 02 P-PAY PIC 9(6). 17 02 P-CUR-TBL. 18 03 P-CUR PIC 9(2) OCCURS 5. 19 WORKING-STORAGE SECTION. 20 77 EMP-FLAG PIC X(1) VALUE SPACE. 21 88 EMP-EOF VALUE "E". 22 77 W-YEAR PIC 9(2). 23 88 UPTO-3 VALUE 0 THRU 3. 24 88 UPTO-9 VALUE 4 THRU 9. 25 88 UPTO-20 VALUE 1O THRU 20. 26 77 PAY-RATE PIC 9V99. 27 77 W-PAY PIC 9(6). 28 01 CUR-VALUE PIC X(25) VALUE "1000005000010000050000100". 29 01 CUR-TBL REDEFINES CUR-VALUE. 30 02 CUR-KIND PIC 9(5) OCCUR 5. 31 01 CNT PIC 9(1). 32 PROCEDURE DIVISION. 33 MAIN-PROC. 34 OPEN INPUT EMP-F 35 OUTPUT PAY-F. 36 PERFORM UNTIL EMP-EOF 37 READ EMP-F AT END SET EMP-EOF TO TRUE 38 NOT AT END MOVE E-NO TO P-NO 39 PERFORM DEC-PROC 40 PERFORM CUR-PROC 41 WRITE P-REC 42 END-READ 43 END-PERFORM. 44 CLOSE EMP-F PAY-F. 45 STOP RUN. 46 DEC-PROC. 47 COMPUTE W-YEAR = 2013 - E-YEAR. 48 IF
設問1 プログラム中の a に関する解答群 ウ W-YEAR < 20 エ W-YEAR >= 20 b,c に関する解答群 イ ADD CNT TO P-CUR(CNT) ウ MOVE CUR-KIND(CNT) TO P-CUR(CNT) エ SUBTRACT CUR-KIND(CNT) FROM W-PAY オ SUBTRACT P-CUR(CNT) FROM W-PAY
設問2 プログラム中の,支給係数を求める EVALUATE 文について, 正しく判定できることを確認するために,従業員ファイルのテストデータを作成した。 全ての選択対象( WHEN 指定に書かれた作用対象を指す)について真を判定できる組合せを, 解答群の中から選べ。ここで,解答群では見やすくするために項目の区切りに“,”を 挿入しているが,実際のデータ中には存在しない。 解答群
設問3 金融機関に現金を用意してもらうために,金種ごとの必要数を集計して, 図3に示すとおり画面に表示するようプログラムを変更する。 表2中の ![]()
表2 プログラムの変更
d に関する解答群 ウ 行番号 46 と 47 の間に追加 エ 行番号 66 と 67 の間に追加 e に関する解答群 イ ADD CUR-KIND(CNT) TO CUR-TOTAL(CNT) ウ ADD P-CUR(CNT) TO CUR-TOTAL(CNT) エ ADD P-PAY TO CUR-TOTAL(CNT)
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| |||||||||||||||||||||||||||||||||||