平成23年 秋期 基本情報技術者 午後 問10
問10 COBOL次の COBOL プログラムの説明及びプログラムを読んで,設問1,2に答えよ。 〔プログラムの説明〕 受験の申込みを登録した申込ファイルから,受験区分別に申込者の人数を集計し,集計表を印字するプログラムである。 (1) 申込ファイルは図1に示すレコード様式の順ファイルである。
図1 申込ファイルのレコード様式 @ 受験の申込み1件に対して,1件のレコードが作成され,5桁の申込番号が付与される。 A 受験区分は,試験区分と開催地区分から構成される。 B 試験区分は,試験内容に対応付けた A 〜 H のいずれか1文字である。 C 開催地区分は,開催地に対応付けた 01 〜 20 のいずれかの数字である。 D 各受験区分の申込者数は,999 人以下である。 E 申込ファイルの内容には,誤りはないものとする。
(2) 集計表の印字例は,図2のとおりである。申込者がいない受験区分は,印字しない。
図2 集計表の印字例 〔プログラム〕 (行番号 ) 1 DATA DIVISION. 2 FILE SECTION. 3 FD TEST-APPLIC-FILE. 4 01 TEST-APPLIC-REC. 5 02 FILLER PIC X(05). 6 02 TEST-M. 7 03 TEST-CATEG-M PIC X(01). 8 03 TEST-PLACE-M PIC 9(02). 9 FD PRINT-TEST-FILE. 10 01 PRINT-REC. 11 02 PRINT-TEST-REC. 12 03 TEST-CATEG-S PIC X(01). 13 03 TEST-PLACE-S PIC 9(02). 14 02 FILLER PIC X(10). 15 02 PRINT-S PIC ZZ9. 16 WORKING-STORAGE SECTION. 17 01 FILE-END PIC X(01) VALUE "N". 18 01 LOOP1 PIC 9(01). 19 01 LOOP2 PIC 9(02). 20 01 TEST-NO PIC 9(01). 21 01 TEST-W1. 22 02 TEST-W2 PIC X(08) VALUE "ABCDEFGH". 23 02 REDEFINES TEST-W2. 24 03 TEST-W3 PIC X(01) OCCURS 8 INDEXED BY TEST-IDX. 25 01 SUM-WK1. 26 02 0CCURS 8. 27 03 SUM-WK PIC 9(03) OCCURS 20 VALUE ZERO. 28 01 HEADER PIC X(16) VALUE "SEGMENT TOTAL". 29 PROCEDURE DIVISION. 30 MAIN-PROC. 31 0PEN INPUT TEST-APPLIC-FILE OUTPUT PRINT-TEST-FILE. 32 PERFORM SUM-PROC UNTIL FILE-END = "Y". 33 PERFORM PRINT-PROC. 34 CLOSE TEST-APPLIC-FILE PRINT-TEST-FILE. 35 STOP RUN. 36 SUM-PROC. 37 READ TEST-APPLIC-FILE 38 AT END 39 MOVE "Y" TO FILE-END 40 NOT AT END 41 42 SEARCH 43 WHEN TEST-CATEG-M = TEST-W3(TEST-IDX) 44 SET TEST-NO TO TEST-IDX 45 END-SEARCH 46 ADD 1 TO SUM-WK(TEST-NO TEST-PLACE-M) 47 END-READ. 48 PRINT-PROC. 49 WRITE PRINT-REC FROM HEADER AFTER PAGE. 50 PERFORM VARYING LOOP1 FROM 1 BY 1 UNTIL LOOP1 > 8 51 PERFORM VARYING LOOP2 FROM 1 BY 1 UNTIL LOOP2 > 20 52 IF NOT = 0 THEN 53 MOVE SPACE TO PRINT-REC 54 MOVE TEST-W3(LOOP1) TO TEST-CATEG-S 55 MOVE LOOP2 TO TEST-PLACE-S 56 MOVE TO PRINT-S 57 WRITE PRINT-REC AFTER 1 58 END-IF 59 END-PERFORM 60 END-PERFORM. 設問1 プログラムの に入れる正しい答えを,解答群の中から選べ。 a に関する解答群
ウ MOVE TEST-IDX TO TEST-NO エ SET TEST-IDX TO 1 オ SET TEST-IDX TO TEST-CATEG-S カ SET TEST-IDX TO TEST-NO b に関する解答群
エ TEST-W1 オ TEST-W2 カ TEST-W3 c に関する解答群
ウ SUM-WK(TEST-CATEG-M TEST-NO) エ SUM-WK(TEST-NO TEST-PLACE-M) オ SUM-WK(TEST-PLACE-M TEST-NO) カ SUM-WK(TEST-PLACE-S TEST-NO)
設問2 集計表における受験区分の印字を申込者数の多い順になるようにプログラムを変更したい。表1に示す プログラムの変更内容の に入れる正しい答えを,解答群の中から選べ。 ここで, には設問1の正しい答えが入っているものとする。
表1 プログラムの変更内容
d に関する解答群
イ ASCENDING KEY SORT-TEST-REC ウ DESCENDING KEY SORT-S エ DESCENDING KEY SORT-TEST-REC e 〜 g に関する解答群
イ END-RETURN ウ READ TEST-SORT-FILE エ READ TEST-SUM-FILE オ RELEASE SORT-REC カ RELEASE SUM-REC キ RETURN TEST-SORT-FILE ク RETURN TEST-SUM-FILE
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ] | ||||||||||||