平成21年 春期 基本情報技術者 午後 問10
問10 COBOL次の COBOL プログラムの説明及びプログラムを読んで,設問1,2に答えよ。 〔プログラムの説明〕 売上ファイルを読み込み,販売店コード別に売上集計を行い, 売上分析表を印刷する副プログラムである。 (1) 売上ファイル SALES-F は順ファイルである。 (2) 売上ファイルのレコード様式を図1に示す。
図1 売上ファイル SALES-F のレコード様式 @ 売上金額はゼロより大きいものとする。 A すべてのレコードの売上金額を合計しても 10 けたを超えないものとする。 B 売上ファイルのデータに誤りはないものとする。 (3) 販売店コードで集計して印刷した売上分析表の例を図2に示す。
図2 売上分析表の例 @ 売上分析表の見出しは印刷済とする。 A 売上分析表は,集計された売上金額の多い順に整列し,印刷する。 B 累積比率は,当該販売店から上位順位店すべての売上金額の累積を売上金額の 総合計で割った比率(%)の小数第2位を切り捨てたものである。 C 文字“*”の並びは,この累積比率の整数部分の値 m を m 個の“*”で示したものである。
〔プログラム〕 1 DATA DIVISION. 2 FILE SECTION. 3 FD SALES-F. 4 01 SALES-R. 5 05 S-SHOP-CD PIC X(10). 6 05 S-PRODUCT-CD PIC X(10). 7 05 S-CUSTOMER-CD PIC X(10). 8 05 S-SALES PIC 9(10). 9 FD TEMP-F. 10 01 TEMP-R. 11 05 TEMP-CD PIC X(10). 12 05 FILLER PIC X(20). 13 05 TEMP-SALES PIC 9(10). 14 FD PRINT-F. 15 01 PRINT-R. 16 05 P-CD PIC X(10). 17 05 FILLER PIC X. 18 05 P-SALES PIC Z,ZZZ,ZZZ,ZZ9. 19 05 FILLER PIC X(5). 20 05 P-RATIO PIC ZZ9.9. 21 05 FILLER PIC X(2). 22 05 P-ASTER PIC X(100). 23 SD SORT-F. 24 01 SORT-R. 25 05 SORT-CD PIC X(10). 26 05 FILLER PIC X(20). 27 05 SORT-SALES PIC 9(10). 28 WORKING-STORAGE SECTION. 29 01 EOF-SW PIC 9. 30 01 GROSS-SUM PIC 9(10). 31 01 INTERIM-SUM PIC 9(10). 32 01 W-SORT-CD PIC X(10). 33 01 W-RATIO PIC 999. 34 PROCEDURE DIVISION. 35 MAIN-CTL. 36 SORT SORT-F 37 INPUT PROCEDURE SORT-1-INPUT 38 GIVING TEMP-F. 39 * 40 SORT SORT-F 41 INPUT PROCEDURE SORT-2-INPUT 42 OUTPUT PROCEDURE SORT-2-OUTPUT. 43 EXIT PROGRAM. 44 * 45 SORT-1-INPUT. 46 OPEN INPUT SALES-F. 47 MOVE 0 TO EOF-SW. 48 PERFORM UNTIL EOF-SW = 1 49 READ SALES-F AT END MOVE 1 TO EOF-SW 50 NOT AT END 51 MOVE SALES-R TO SORT-R 52 RELEASE SORT-R 53 END-READ 54 END-PERFORM. 55 CLOSE SALES-F. 56 * 57 SORT-2-INPUT. 58 OPEN INPUT TEMP-F. 59 MOVE 0 TO GROSS-SUM. 60 MOVE 0 TO EOF-SW. 61 PERFORM UNTIL EOF-SW = 1 62 READ TEMP-F AT END MOVE 1 TO EOF-SW 63 NOT AT END 64 IF GROSS-SUM = 0 OR 65 W-SORT-CD NOT = TEMP-CD THEN 66 IF GROSS-SUM NOT = 0 THEN 67 RELEASE SORT-R 68 END-IF 69 MOVE TEMP-CD TO W-SORT-CD 70 SORT-CD 71 72 ELSE 73 74 END-IF 75 76 END-READ 77 END-PERFORM. 78 IF GROSS-SUM NOT = 0 THEN 79 RELEASE SORT-R 80 END-IF. 81 CLOSE TEMP-F. 82 * 83 SORT-2-OUTPUT. 84 OPEN OUTPUT PRINT-F. 85 MOVE 0 TO INTERIM-SUM. 86 MOVE 0 TO EOF-SW. 87 PERFORM UNTIL EOF-SW = 1 88 RETURN SORT-F AT END MOVE 1 TO EOF-SW 89 NOT AT END 90 ADD SORT-SALES TO INTERIM-SUM 91 PERFORM DETAIL-PRINT-PROC 92 END-RETURN 93 END-PERFORM. 94 PERFORM FOOTER-PRINT-PROC. 95 CLOSE PRINT-F. 96 * 97 DETAIL-PRINT-PROC. 98 MOVE SPACE TO PRINT-R. 99 MOVE SORT-CD TO P-CD. 100 MOVE SORT-SALES TO P-SALES. 101 COMPUTE P-RATIO W-RATIO = INTERIM-SUM * 100 / GROSS-SUM. 102 IF W-RATIO > 0 THEN 103 MOVE ALL "*" TO P-ASTER(1:W-RATIO) 104 END-IF. 105 WRITE PRINT-R AFTER 1. 106 FOOTER-PRINT-PROC. 107 MOVE SPACE TO PRINT-R. 108 MOVE "TOTAL" TO P-CD. 109 MOVE GROSS-SUM TO P-SALES. 110 WRITE PRINT-R AFTER 1.設問1 プログラム中の に入れる正しい答えを, 解答群の中から選べ。 a, b に関する解答群 イ ASCENDING KEY SORT-SALES ウ DESCENDING KEY SORT-SALES エ DESCENDING KEY TEMP-CD イ ADD TEMP-SALES TO INTERIM-SUM ウ ADD TEMP-SALES T0 SORT-SALES エ MOVE TEMP-SALES T0 GROSS-SUM オ MOVE TEMP-SALES T0 INTERIM-SUM カ MOVE TEMP-SALES T0 SORT-SALES
設問2 この副プログラムを,商品コード,顧客コードでの集計にも使えるように変更する。 パラメタの値が,1のときは販売店コード,2のときは商品コード,3のときは顧客コードに よる集計となるようにする。表中の に入れる正しい答えを, 解答群の中から選べ。
f に関する解答群 イ S-CD PIC X(10) OCCURS 3 ウ S-CD PIC X(10) OCCURS 3 INDEXED BY SUM-CD エ S-CD PIC X(20) オ S-CD PIC X(30) g に関する解答群 イ 行番号 51 と 52 の間 ウ 行番号 66 と 67 の間 エ 行番号 78 と 79 の間
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ] | |||||||||||||||