![]()
平成20年 秋期 基本情報技術者 午後 問07
問07 COBOL次の COBOL プログラムの説明及びプログラムを読んで,設問1,2に答えよ。 〔プログラムの説明〕 ある事業所では,環境活動の一環としてコピー用紙の削減を目標にかかげ,部署ごとの 使用状況を月ごとに集計し,公開することにした。この事業所では,両面コピー機能が ある1台のコピー機をすべての部署で共用している。このプログラムは,コピー機に 記録された稼働情報を集計する。 (1) コピー機の利用者は,部署ごとに配布された IC カードをコピー機にセットする。 コピー機はセットされた IC カードから利用部署を読み取り,内部に記録する。 (2) 利用実績ファイル COPY-FILE は,コピー機に記録された情報から集計月分を抽出した, 図1に示すレコード様式の順ファイルである。
図1 利用実績ファイルのレコード様式 @ コピー機の利用1回に対して,1レコードが生成される。 A 利用日には,西暦年が4けた,月及び日がそれぞれ2けたで格納される。 B 利用部署には,第1営業部,第2営業部,第1開発部,第2開発部,管理部の順に, それぞれ1から5まで割り振られた1けたの部署コードが格納される。 C 使用枚数には,使用したコピー用紙の枚数が格納される。両面コピー機能を利用して両面に 印刷した場合でも1枚と数える。 D 両面コピー機能を利用した場合は両面使用に1が設定され,利用しなかった場合は0が設定される。 (3) コピー用紙の使用量は,1部署当たり合計で毎月 3,000 枚以下とする。 (4) 集計結果の表示例を図2に示す。
図2 集計結果の表示例 @ 利用部署の,第1営業部,第2営業部,第1開発部,第2開発部,管理部は, それぞれ Sales-1,Sales-2,Dev-1,Dev-2,Admin と表示する。 A 部署ごとに月ごとの使用枚数を集計して,100 枚を * 印一つとした棒グラフで表示する。 ただし,100 枚に満たない分は切り上げる。 〔プログラム〕 (行番号) 1 DATA DIVISION. 2 FILE SECTION. 3 FD COPY-FILE. 4 01 CP-REC. 5 02 CP-DATE PIC X(8). 6 02 CP-DEPT PIC 9(1). 7 02 CP-CNT PIC 9(4). 8 02 CP-BOTH PIC 9(1). 9 WORKING-STORAGE SECTION. 10 01 TOTAL. 11 02 DEPT-TOTAL PIC 9(4) OCCURS 5 VALUE ZERO. 12 77 READ-FLAC PIC X(1) VALUE SPACE. 13 88 DATA-EOF VALUE "E". 14 77 DEPT-CNT PIC 9(2). 15 77 MARK-CNT PIC 9(2). 16 77 HEADER PIC X(47) VALUE 17 " DEPT ----+----1----+----2----+----3 (x1000)". 18 01 DEPT PIC X(40) VALUE 19 "Sales-1 Sales-2 Dev-1 Dev-2 Admin". 20 01 DEPT-HEADER REDEFINES DEPT. 21 02 DEPT-NAME PIC X(8) OCCURS 5. 22 77 MARKER PIC X(30) VALUE ALL "*". 23 PROCEDURE DIVISION. 24 MAIN-PROC. 25 OPEN INPUT COPY-FILE. 26 PERFORM UNTIL DATA-EOF 27 READ COPY-FILE AT END SET DATA-EOF TO TRUE 28 NOT AT END PERFORM CNT-PROC 29 END-READ 30 END-PERFORM. 31 CLOSE COPY-FILE. 32 PERFORM PRT-PROC. 33 STOP RUN. 34 CNT-PROC. 35設問1 プログラム中の ![]() 解答群 イ ADD CP-CNT TO DEPT-TOTAL(CP-DEPT) ウ COMPUTE MARK-CNT = (DEPT-TOTAL(DEPT-CNT) + 99)/ 100 エ COMPUTE MARK-CNT = DEPT-TOTAL(DEPT-CNT) / 100 オ MOVE CP-CNT TO DEPT-TOTAL(CP-DEPT) 力 MOVE DEPT-TOTAL(DEPT-CNT) TO MARK-CNT
設問2 両面コピー機能を利用した枚数の比率を計算し,50 %未満の場合は図3のように 棒の右端に "(!)" を表示するように,プログラムを変更する。 次の表中の ![]()
図3 プログラム変更後の表示例 表 プログラムの変更内容
ウ 行番号 35 と 36 エ 行番号 37 と 38 DEPT-BOTH(DEPT-CNT) * 100 / DEPT-TOTAL(DEPT-CNT) イ COMPUTE BOTH-RATE = DEPT-BOTH(DEPT-CNT) / 100 ウ COMPUTE MARK-CNT = DEPT-TOTAL(DEPT-CNT) / 100 エ MOVE DEPT-BOTH(DEPT-CNT) TO BOTH-RATE オ MOVE DEPT-TOTAL(DEPT-CNT) TO MARK-CNT
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||||||||||