平成21年 秋期 基本情報技術者 午後 問10
問10 COBOL次の COBOL プログラムの説明及びプログラムを読んで,設問1,2に答えよ。 〔プログラムの説明〕 売上伝票ファイルに記録された各支店( A 〜 E )の月単位の売上情報を支店ごとに集計して, 売上マスタファイルに格納する月次処理のプログラムである。 なお,集計した当該月の売上データは画面にも表示する。 (1) 売上伝票ファイルは,図1に示すレコード様式の順ファイルである。
図1 売上伝票ファイルのレコード様式 @ 売上伝票ファイルには,ある月の1か月分の売上データを格納する。 A 伝票番号には,6けたの数字を格納する。 B 売上日には,西暦年を4けた,月, 日をそれぞれ2けたの数字で格納する。 なお,一つのファイルに含まれるレコードの西暦年と月は,それぞれすべて等しい。 C 支店コードは,A 〜 E の支店に対して昇順に割り当てた1〜5の数字である。 (2) 売上マスタファイルは,図2に示すレコード様式の,売上年月を主キーとする索引ファイルである。
図2 売上マスタファイルのレコード様式 @ 売上年月には,西暦年が4けた,月が2けたの数字を格納する。 A 売上金額には,当該月の各支店の売上金額を格納する。 B 売上合計金額には,当該月の全支店の売上金額の合計を格納する。 C 各支店の1か月分の売上金額は,8けたを超えないものとする。 (3) 集計結果の表示例を図3に示す。
図3 集計結果の表示例 A TOTALには,売上合計金額を表示する。
〔プログラム〕 (行番号) 1 DATA DIVISION. 2 FILE SECTION. 3 SD SORT-FILE. 4 01 SORT-REC. 5 02 SORT-BR PIC 9(2). 6 02 SORT-AMOUNT PIC 9(8). 7 FD SALES-FILE. 8 01 SALES-REC. 9 02 SALES-NO PIC 9(6). 10 02 SALES-DATE. 11 03 SALES-YYYYMM PIC 9(6). 12 03 SALES-DD PIC 9(2). 13 02 SALES-BR PIC 9(2). 14 02 SALES-AMOUNT PIC 9(6). 15 FD MAST-FILE. 16 01 MAST-REC. 17 02 MAST-KEY. 18 03 KEY-YYYYMM PIC 9(6). 19 02 PIC X(49). 20 WORKING-STORAGE SECTION. 21 01 W-MAST. 22 02 MAST-YYYYMM PIC 9(6). 23 02 MAST-BRANCH. 24 03 MAST-AMOUNT PIC 9(8) OCCURS 5. 25 03 MAST-TOTAL PIC 9(9). 26 77 CNT PIC 9(2). 27 77 AMOUNT PIC ZZZ,ZZZ,ZZ9. 28 77 READ-FLAG PIC X(1) VALUE SPACE. 29 88 DATA-EOF VALUE "E". 30 77 SORT-FLAG PIC X(1) VALUE SPACE. 31 88 SORT-EOF VALUE "E". 32 01 BRANCH PIC X(55) VALUE 33 "A-BRANCH B-BRANCH C-BRANCH D-BRANCH E-BRANCH". 34 01 HEADER REDEFINES BRANCH. 35 02 BR-NAME PIC X(11) OCCURS 5. 36 PROCEDURE DIVISION. 37 MAIN-PROC. 38 INITIALIZE W-MAST. 39 OPEN INPUT SALES-FILE I-O MAST-FILE. 40 READ SALES-FILE 41 AT END SET DATA-EOF TO TRUE 42 NOT AT END 43 MOVE SALES-AMOUNT TO MAST-AMOUNT(SALES-BR) 44 END-READ. 45 PERFORM UNTIL DATA-EOF 46 READ SALES-FILE 47 AT END SET DATA-EOF TO TRUE 48 NOT AT END ADD SALES-AMOUNT TO MAST-AMOUNT(SALES-BR) 49 END-READ 50 END-PERFORM. 51 PERFORM VARYING CNT FROM 1 BY 1 UNTIL CNT > 5 52 53 END-PERFORM. 54 WRITE MAST-REC FROM W-MAST 55 INVALID KEY DISPLAY "** ERROR OCCURRED **" 56 NOT INVALID KEY PERFORM PRT-PROC 57 END-WRITE. 58 CLOSE SALES-FILE MAST-FILE. 59 STOP RUN. 60 PRT-PROC. 61 SORT SORT-FILE 62 INPUT PROCEDURE IS IN-PROC 63 OUTPUT PROCEDURE IS OUT-PROC. 64 IN-PROC. 65 PERFORM VARYING CNT FROM 1 BY 1 UNTIL CNT > 5 66 MOVE CNT TO SORT-BR 67 68 RELEASE SORT-REC 69 END-PERFORM. 70 OUT-PROC. 71 PERFORM UNTIL SORT-EOF 72 RETURN SORT-FILE 73 AT END SET SORT-EOF TO TRUE 74 NOT AT END MOVE SORT-AMOUNT TO AMOUNT 75 DISPLAY BR-NAME(SORT-BR) AMOUNT 76 END-RETURN 77 END-PERFORM. 78 DISPLAY "----------------------". 79 MOVE MAST-TOTAL TO AMOUNT. 80 DISPLAY "TOTAL " AMOUNT. 設問1 プログラム中の に入れる正しい答えを,解答群の中から選べ。 a, b, d に関する解答群 イ ADD SALES-AMOUNT TO MAST-TOTAL ウ ADD SALES-AMOUNT TO SORT-AMOUNT エ MOVE MAST-AMOUNT(CNT) TO SORT-AMOUNT オ MOVE SALES-AMOUNT TO SORT-AMOUNT カ MOVE SALES-BR TO SORT-BR キ MOVE SALES-YYYYMM TO MAST-YYYYMM イ ASCENDING KEY SORT-BR ウ DESCENDING KEY SORT-AMOUNT エ DESCENDING KEY SORT-BR
設問2 各支店の当該月の売上金額に加えて対前年同月比を表示するように プログラムを変更する。このとき,前年同月の売上金額がゼロであるか又は 情報の取得に失敗した場合は,“( - % )”と表示する。 集計結果の表示例を,図4に示す。次の表中の に入れる正しい答えを, 解答群の中から選べ。 なお,対前年同月比は,999% を超えないものとする。
図4 対前年同月比を追加した集計結果の表示例
表 プログラムの変更内容
イ MOVE MAST-REC TO W-MAST ウ MOVE MAST-TOTAL TO THIS-TOTAL エ MOVE W-MAST TO MAST-REC イ COMPUTE RATIO = MAST-TOTAL * 100 / THIS-TOTAL ウ COMPUTE RATIO = SORT-AMOUNT * 100 / MAST-AMOUNT(SORT-BR) エ COMPUTE RATIO = SORT-AMOUNT * 100 / MAST-TOTAL オ COMPUTE RATIO = THIS-TOTAL * 100 / MAST-TOTAL
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||||||||||||||||||||