平成14年 春期 基本情報技術者 午後 問07
問07 COBOL次の COBOL プログラムの説明及びプログラムを読んで,設問に答えよ。 〔プログラムの説明〕 ある会社の1か月間の売上ファイルを入力して, 合計売上金額の上位 10 製品を印字するプログラムである。
(1) 売上ファイルのレコード様式は,次のとおりである。
(2) 印字用のファイルの様式は,次のとおりである。
@ 順位は,2けたの数字からなり,合計売上金額が等しい製品の順位は同じとする。 A 同順位のときは,製品コードの小さい順に印字する。 B 製品別の売上金額は,単価×個数で求めることができ, その合計(合計売上金額)は8けた以内とする。 C 印字例のように,11 件目以降に 10 件目と同じ順位が続くときには,
それらをすべて印字する。
〔プログラム〕 DATA DIVISION. FILE SECTION. FD URIAGE-FILE. 01 URIAGE-REC. 03 U-MCODE PIC X(4). 03 U-SCODE PIC X(4). 03 U-DATE PIC X(8). 03 U-TANKA PIC 9(6). 03 U-KOSU PIC 9(6). FD PRINT-FILE. 01 PRINT-REC. 03 P-NUM PIC 9(2). 03 PIC X(1). 03 P-CODE PIC X(4). 03 PIC X(1). 03 P-KINGAKU PIC 9(8). FD SHUKEI-FILE. 01 SHUKEI-REC. 03 S-CODE PIC X(4). 03 S-KINGAKU PIC 9(8). SD WORK-FILE. 01 WORK-REC. 03 W-CODE PIC X(4). 03 W-KINGAKU PIC 9(8). WORKING-STORAGE SECTION. 01 WK-AREA. 03 WK-CODE PIC X(4). 03 WK-KINGAKU PIC 9(8). 01 WK-NUM1 PIC 9(2) VALUE ZERO. 01 WK-NUM2 PIC 9(2) VALUE ZERO. 01 FLG-1 PIC X(1) VALUE SPACE. 01 FLG-2 PIC X(1) VALUE SPACE. 01 FLG-3 PIC X(1) VALUE SPACE. PROCEDURE DIVISION. MAIN-SHORI. SORT WORK-FILE ON ASCENDING KEY W-CODE INPUT PROCEDURE NYURYOKU-SHORI GIVING SHUKEI-FILE. SORT WORK-FILE ON DESCENDING KEY W-KINGAKU ON ASCENDING KEY W-CODE INPUT PROCEDURE SHUKEI-SHORI OUTPUT PROCEDURE PRINT-SHORI. STOP RUN. NYURYOKU-SHORI. OPEN INPUT URIAGE-FILE. PERFORM UNTIL FLG-1 = "E" READ URIAGE-FILE AT END MOVE "E" TO FLG-1 NOT AT END MOVE U-SCODE TO W-CODE RELEASE WORK-REC END-READ END-PERFORM. CLOSE URIAGE-FILE. SHUKEI-SHORI. OPEN INPUT SHUKEI-FILE. MOVE SPACE TO WK-CODE. PERFORM UNTIL FLG-2 = "E" READ SHUKEI-FILE AT END MOVE "E" TO FLG-2 IF WK-CODE NOT = SPACE THEN RELEASE WORK-REC FROM WK-AREA END-IF NOT AT END IF S-CODE = WK-CODE THEN COMPUTE WK-KINGAKU = WK-KINGAKU + S-KINGAKU ELSE IF WK-CODE NOT = SPACE THEN RELEASE WORK-REC FROM WK-AREA END-IF END-IF END-READ END-PERFORM. CLOSE SHUKEI-FILE. PRINT-SHORI. OPEN OUTPUT PRINT-FILE. MOVE SPACE TO PRINT-REC. MOVE ZERO TO P-KINGAKU. PERFORM UNTIL FLG-3 = "E" OR WK-NUM1 > 10 RETURN WORK-FILE AT END MOVE "E" TO FLG-3 NOT AT END COMPUTE WK-NUM2 = WK-NUM2 + 1 IF THEN END-IF IF WK-NUM1 <= 10 THEN MOVE WK-NUM1 TO P-NUM MOVE W-CODE TO P-CODE MOVE W-KINGAKU TO P-KINGAKU WRITE PRINT-REC END-IF END-RETURN END-PERFORM. CLOSE PRINT-FILE. 設問 プログラム中の に入れる正しい答えを, 解答群の中から選べ。
a に関する解答群 ア COMPUTE W-KINGAKU = U-TANKA * U-KOSU イ COMPUTE W-KINGAKU = W-KINGAKU + U-TANKA ウ COMPUTE W-KINGAKU = W-KINGAKU + U-TANKA * U-KOSU エ MOVE U-KOSU TO W-KINGAKU オ MOVE U-TANKA TO W-KINGAKU b に関する解答群 ア MOVE SHUKEI-REC TO WK-AREA イ MOVE SHUKEI-REC TO WORK-REC ウ MOVE WK-AREA TO WORK-REC エ MOVE WORK-REC TO SHUKEI-REC オ MOVE WORK-REC TO WK-AREA c に関する解答群 ア W-KINGAKU = P-KINGAKU イ W-KINGAKU NOT = P-KINGAKU ウ WK-NUM2 <= 10 エ WK-NUM2 = 10 オ WK-NUM2 > 10 d に関する解答群 ア COMPUTE WK-NUM1 = WK-NUM1 + WK-NUM2 イ COMPUTE WK-NUM2 = WK-NUM2 + WK-NUM1 ウ MOVE WK-NUM1 TO WK-NUM2 エ MOVE WK-NUM2 TO WK-NUM1 オ MOVE ZERO TO WK-NUM2
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||||||