平成16年 秋期 基本情報技術者 午後 問11
問11 COBOL次の COBOL プログラムの説明及びプログラムを読んで,設問に答えよ。
〔プログラムの説明〕 五つのチャンネルでテレビを視聴できる地域がある。 プログラムは,この地域の調査対象世帯がある1日に視聴した番組を記録した視聴データファイルと, 同じ日の番組データを記録した番組データファイルを読み込んで,番組ごとに平均視聴率を求めて印字する。 プログラムでは,時間を1分の単位に丸めて扱う。 例えば,時刻 10 時 00 分は,10 時 00 分 00 秒から 10 時 00 分 59 秒までの時間を丸めたものとして扱う。 (1) 視聴データファイル(VIEW-FILE)は,次のレコード様式の順ファイルである。
@ 視聴データファイルには,標本となる調査対象 600 世帯の1日の視聴データが格納されている。 A 1世帯が所有するテレビの台数は1台とする。 B チャンネル番号は,01 〜 05 の五つの値をとる。 C 一つのレコードは,ある世帯が,“チャンネル番号”のチャンネルを“検出開始時刻”から, “検出終了時刻”まで,視聴したと検出したことを表す。 D 視聴データは,調査対象の世帯が視聴しているチャンネルを,毎分 00 秒に検出して取得する。 例えば,ある世帯で 10 時 00 分 30 秒から 10 時 05 分 30 秒までテレビを視聴し, その間に次のようにチャンネルを変えたとする。
毎分 00 秒にチャンネルを検出するので,視聴データファイルには次のように分の単位に丸めて記録される。 チャンネル 03 の視聴は記録されない。
0110011002 E 検出開始時刻及び検出終了時刻の値の範囲は,00 時 00 分 〜 23 時 59 分である。 2 日にわたるデータはない。 F 検出開始時刻 ≦ 検出終了時刻 の関係が成り立つ。 (2) 番組データファイル( PROGRAM-FILE )は,次のレコード様式の順ファイルである。
@ 番組データファイルには,視聴データファイルと同じ日の, 5チャンネル分の番組データが格納されている。 A 番組開始時刻及び番組終了時刻の値の範囲は,00 時 00 分 〜 23 時 59 分である。 2 日にわたるデータはない。 B 番組開始時刻 ≦ 番組終了時刻 の関係が成り立つ。 C 一つのレコードは,ある番組の放送時間が,“番組開始時刻”から “番組終了時刻”までであることを表す。 (3) プログラムでの処理は,次のとおりである。 @ 視聴カウント表(VIEW-COUNT-TABLE)は,5(チャンネル)× 1,440(分)の 2 次元の表である。 チャンネルごとに,分単位に視聴した世帯数を表の各要素に集計する。 A 番組の平均視聴率は次の式で求める。
B 番組データファイルから読み込んだ番組順に,チャンネル,番組開始時刻,番組終了時刻, 平均視聴率(小数第1位までのパーセント表示),番組名を,次の様式で印字する。
〔プログラム〕 DATA DIVISION. FILE SECTION. FD VIEW-FILE. 01 VIEW-REC. 05 VIEW-CHANNEL PIC 99. 05 VIEW-START-HHMM. 10 VIEW-START-HH PIC 99. 10 VIEW-START-MM PIC 99. 05 VIEW-END-HHMM. 10 VIEW-END-HH PIC 99. 10 VIEW-END-MM PIC 99. FD PROGRAM-FILE. 01 PROGRAM-REC. 05 PROG-CHANNEL PIC 99. 05 PROG-START-HHMM. 10 PROG-START-HH PIC 99. 10 PROG-START-MM PIC 99. 05 PROG-END-HHMM. 10 PROG-END-HH PIC 99. 10 PROG-END-MM PIC 99. 05 PROGRAM-TITLE PIC X(50). FD OUT-FILE. 01 OUT-REC PIC X(100). WORKING-STORAGE SECTION. 01 SAMPLE-SIZE PIC 9(4) VALUE 600. 01 M PIC 9(4). 01 END-OF-FILE PIC X. 01 START-MMMM PIC 9(4). 01 END-MMMM PIC 9(4). 01 SUMMATION PIC 9(9) BINARY. 01 PROG-RATING PIC ZZ9.9. 01 VIEW-COUNT-TABLE. 05 CHANNEL OCCURS 5. 10 COUNT-OF-MINUTE OCCURS 1440 PIC 9(4) BINARY. 01 O-DATA. 05 FILLER PIC X(3) VALUE SPACE. 05 O-PROG-CHANNEL PIC 99. 05 FILLER PIC X(3) VALUE SPACE. 05 O-PROG-START-HHMM. 10 O-PROG-START-HH PIC 99. 10 O-PROG-START-MM PIC 99. 05 FILLER PIC X(3) VALUE " - ". 05 O-PROG-END-HHMM. 10 O-PROG-END-HH PIC 99. 10 O-PROG-END-MM PIC 99. 05 FILLER PIC X(2) VALUE SPACE. 05 O-PROG-RATING PIC ZZ9.9. 05 FILLER PIC X(6) VALUE SPACE. 05 O-PROGRAM-TITLE PIC X(50). 01 TITLE-LINE PIC X(100) VALUE "channel from - to rating(%) program-title". PROCEDURE DIVISION. MAIN-PARAGRAPH. PERFORM EXPAND-VIEW-COUNT. PERFORM CALCULATE-RATING-AND-PRINT. STOP RUN. EXPAND-VIEW-COUNT. . OPEN INPUT VIEW-FILE. MOVE "N" TO END-OF-FILE. PERFORM UNTIL END-OF-FILE = "Y" READ VIEW-FILE AT END MOVE "Y" TO END-OF-FILE NOT AT END PERFORM SET-VIEW-COUNT END-READ END-PERFORM. CL OS E VIEW-FILE. CALCULATE-RATING-AND-PRINT. OPEN INPUT PROGRAM-FILE OUTPUT OUT-FILE. WRITE OUT-REC FROM TITLE-LINE AFTER ADVANCING 1. . PERFORM UNTIL END-OF-FILE = "Y" READ PROGRAM-FILE AT END MOVE "Y" TO END-OF-FILE NOT AT END PERFORM CALCULATE-RATING MOVE PROG-CHANNEL TO O-PROG-CHANNEL MOVE PROG-START-HHMM TO O-PROG-START-HHMM MOVE PROG-END-HHMM TO O-PROG-END-HHMM MOVE PROG-RATING TO O-PROG-RATING MOVE PROGRAM-TITLE TO O-PROGRAM-TITLE WRITE OUT-REC FROM O-DATA AFTER ADVANCING 1 END-READ END-PERFORM. CL OS E PROGRAM-FILE OUT-FILE. SET-VIEW-COUNT. COMPUTE START-MMMM = VIEW-START-HH * 60 + VIEW-START-MM + 1. COMPUTE END-MMMM = VIEW-END-HH * 60 + VIEW-END-MM + 1. PERFORM VARYING M FROM START-MMMM BY 1 UNTIL M > END-MMMM END-PERFORM. CALCULATE-RATING. COMPUTE START-MMMM = PROG-START-HH * 60 + PROG-START-MM + 1. COMPUTE END-MMMM = PROG-END-HH * 60 + PROG-END-MM + 1. . PERFORM VARYING M FROM START-MMMM BY 1 UNTIL M > END-MMMM END-PERFORM. COMPUTE PROG-RATING ROUNDED = .
設問 プログラム中の に入れる正しい答えを, 解答群の中から選べ。
a,b,d に関する解答群 ア COMPUTE SUMMATION = END-MMMM - START-MMMM イ INITIALIZE VIEW-COUNT-TABLE ウ MOVE "N" TO END-OF-FILE エ MOVE "Y" TO END-OF-FILE オ MOVE SAMPLE-SIZE TO SUMMATION カ MOVE ZERO TO SUMMATION キ MOVE ZERO TO VIEW-COUNT-TABLE c,e に関する解答群 ア ADD 1 TO COUNT-OF-MINUTE(VIEW-CHANNEL M) イ ADD 1 TO COUNT-OF-MINUTE(VIEW-CHANNEL M + 1) ウ ADD 1 TO SUMMATION エ ADD COUNT-OF-MINUTE(PROG-CHANNEL M) TO SUMMATION オ COMPUTE SUMMATION = COUNT-OF-MINUTE(PROG-CHANNEL M + 1) カ COMPUTE SUMMATION = COUNT-OF-MINUTE(VIEW-CHANNEL M) + 1 キ MOVE 1 TO COUNT-OF-MINUTE(VIEW-CHANNEL M) f に関する解答群 ア 100 * SUMMATION / ((END-MMMM - START-MMMM) * (SAMPLE-SIZE + 1)) イ 100 * SUMMATION / ((END-MMMM - START-MMMM + 1) * SAMPLE-SIZE) ウ 100 * SUMMATION / (END-MMMM - START-MMMM) / SAMPLE-SIZE エ 100 * SUMMATION / (END-MMMM - START-MMMM + 1) / (SAMPLE-SIZE + 1)
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||||||||||||||||||