平成31年 春期 基本情報技術者 午後 問10
問10 COBOL
次の COBOL プログラムの説明及びプログラムを読んで,設問1,2に答えよ。 〔プログラムの説明〕 地域の5か所に建物(以下,校舎という)をもち,中学生向けの進学指導を行っている P 学習塾では, 定期的にテストを実施している。全ての塾生は,国語,数学, 英語,理科及び社会の5教科のテストを受ける。 テスト結果は,1回分を学年別の結果ファイルに格納する。 各校舎の各学年には1名以上の塾生が所属しており,1学年の人数は塾全体で 999 人を超えることはない。 このプログラムは,結果ファイルに格納されたある学年のテスト結果を塾生ごとに集計して, 5教科の得点の合計(以下,合計点という)の降順に並べた順位リストを印字する。 (1) 結果ファイルは,図1に示すレコード様式の順ファイルであり,1学年分のレコードが格納されている。
図1 結果ファイルのレコード様式 A 校舎番号には,塾生番号で示される塾生が所属する校舎の番号が 01〜05 で格納されている。 B テスト結果には,塾生番号で示される塾生の各教科の得点が 000〜100 で格納されている。 (2) 順位リストは,図2に示す印字様式である。見出しは印刷済みとする。 図2 順位リストの印字様式 A 同じ合計点の塾生は同じ順位とする。例えば,塾全体で合計点の高い塾生から, 492 点が1名,488 点が2名,487点が1名いた場合は,図3のように順位付けして印字する。
図3 順位リストの印字例
〔プログラム1〕 (行番号) Ø1 DATA DIVISION. Ø2 FILE SECTION. Ø3 SD SRT-FILE. Ø4 Ø1 SRT-REC. Ø5 Ø2 SRT-NO PIC 9(6). Ø6 Ø2 SRT-BLD PIC 9(2). Ø7 Ø2 SRT-TOTAL PIC 9(3). Ø8 FD RSL-FILE. Ø9 Ø1 RSL-REC. 1Ø Ø2 RSL-NO PIC 9(6). 11 Ø2 RSL-BLD PIC 9(2). 12 Ø2 RSL-SCR PIC 9(3) OCCURS 5. 13 FD PRT-FILE. 14 Ø1 PRT-REC. 15 Ø2 PRT-ALL-RANK PIC ZZ9. 16 Ø2 PRT-SP1 PIC X(7). 17 Ø2 PRT-NO PIC 9(6). 18 Ø2 PRT-SP2 PIC X(4). 19 Ø2 PRT-BLD PIC 9(2). 2Ø Ø2 PRT-SP3 PIC X(8). 21 Ø2 PRT-BLD-RANK PIC ZZ9. 22 Ø2 PRT-SP4 PIC X(9). 23 Ø2 PRT-TOTAL PIC ZZ9. 24 WORKING-STORAGE SECTION. 25 77 SRT-FLAG PIC X(1) VALUE SPACE. 26 88 SRT-EOF VALUE "E". 27 77 RSL-FLAG PIC X(1) VALUE SPACE. 28 88 RSL-EOF VALUE "E". 29 77 ALL-ORD-NO PIC 9(3) VALUE ZERO. 3Ø 77 ALL-RANK PIC 9(3) VALUE ZERO. 31 77 ALL-CR-TOTAL PIC 9(3) VALUE 999. 32 Ø1 BLD-INF. 33 Ø2 BLD-ORD-NO PIC 9(3) OCCURS 5 VALUE ZERO. 34 Ø2 BLD-RANK PIC 9(3) OCCURS 5 VALUE ZERO. 35 Ø2 BLD-CR-TOTAL PIC 9(3) OCCURS 5 VALUE 999. 36 PROCEDURE DIVISION. 37 MAIN-PROC. 38 OPEN INPUT RSL-FILE 39 OUTPUT PRT-FILE. 4Ø SORT SRT-FILE a 41 INPUT PROCEDURE IS REL-PROC 42 OUTPUT PROCEDURE IS RET-PROC. 43 CLOSE RSL-FILE PRT-FILE. 44 STOP RUN. 45 REL-PROC. 46 PERFORM UNTIL RSL-EOF 47 READ RSL-FILE AT END SET RSL-EOF TO TRUE 48 NOT AT END PERFORM CALC-PROC 49 END-READ 5Ø END-PERFORM. 51 CALC-PROC. 52 MOVE RSL-NO TO SRT-NO. 53 MOVE RSL-BLD TO SRT-BLD. 54 COMPUTE SRT-TOTAL = RSL-SCR(1) + RSL-SCR(2) + 55 RSL-SCR(3) + RSL-SCR(4) + RSL-SCR(5). 56 RELEASE SRT-REC. 57 RET-PROC. 58 PERFORM UNTIL SRT-EOF 59 RETURN SRT-FILE AT END SET SRT-EOF TO TRUE 6Ø NOT AT END PERFORM PRT-PROC 61 END-RETURN 62 END-PERFORM. 63 PRT-PROC. 64 b 65 IF SRT-TOTAL < ALL-CR-TOTAL THEN 66 MOVE SRT-TOTAL TO ALL-CR-TOTAL 67 c 68 END-IF. 69 IF SRT-TOTAL < BLD-CR-TOTAL(SRT-BLD) THEN 7Ø MOVE SRT-TOTAL TO BLD-CR-TOTAL(SRT-BLD) 71 d 72 END-IF. 73 INITIALIZE PRT-REC. 74 MOVE ALL-RANK TO PRT-ALL-RANK. 75 MOVE SRT-NO TO PRT-NO. 76 MOVE SRT-BLD TO PRT-BLD. 77 MOVE BLD-RANK(SRT-BLD) TO PRT-BLD-RANK. 78 MOVE SRT-TOTAL TO PRT-TOTAL. 79 WRITE PRT-REC.
a に関する解答群 ウ DESCENDING KEY SRT-NO ウ DESCENDING KEY SRT-TOTAL b に関する解答群 イ ADD 1 TO ALL-RANK BLD-RANK(SRT-BLD) ウ INITIALIZE BLD-INF エ MOVE ALL-ORD-NO TO BLD-ORD-NO(SRT-BLD) c,d に関する解答群 イ MOVE ALL-ORD-NO TO ALL-RANK ウ MOVE ALL-ORD-NO TO BLD-RANK(SRT-BLD) エ MOVE BLD-CR-TOTAL(SRT-BLD) TO BLD-RANK(SRT-BLD) オ MOVE BLD-ORD-NO(SRT-BLD) TO ALL-RANK カ MOVE BLD-ORD-NO(SRT-BLD) TO BLD-RANK(SRT-BLD)
図4 表示様式
e に関する解答群 ウ 行番号 62 と 63 の間 エ 行番号 79 の後ろ f に関する解答群 イ BLD-TOTAL(CNT) / BLD-ORD-NO(SRT-BLD) ウ BLD-TOTAL(CNT) / BLD-RANK(CNT) エ BLD-TOTAL(CNT) / BLD-RANK(SRT-BLD)
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||||||||||