![]()
令和元年 秋期 基本情報技術者 午後 問10
問10 COBOL
次の COBOL プログラムの説明及びプログラムを読んで,設問1,2に答えよ。 〔プログラムの説明〕 ある地域で 5 店舗のスーパマーケットを展開するW社では,全店舗で弁当を販売している。 どの店舗も,1日に仕入れる弁当の個数は,一つの種類について 50 個以内である。 売れ残ってしまう弁当を減らす目的で,18 時以降は正価の 20 %引きで, 19 時以降は正価の 50 %引きで販売している。閉店後は売れ残った弁当を廃棄し, 販売状況を分析して,翌営業日の仕入れの参考にしている。 このプログラムは,販売ファイルに格納された弁当の販売データを読み込み, 店舗ごとに集計して,販売リストに印字する。 (1) 販売ファイル SAL-FILE は,図1に示すレコード様式の順ファイルであり, 全 5 店舗で1日に販売又は廃棄した弁当のデータが格納されている。 弁当1個に対して 1 レコードが作成される。
![]() 図1 販売ファイルのレコード様式 @ 店舗番号には,店舗の番号が 01〜05 で格納されている。 A 弁当種別には,弁当の種類ごとに一意に割り振られた番号が格納されている。 B 値引率には,正価で販売した場合は 000 が,20 %引きで販売した場合は 020 が, 50 %引きで販売した場合は 050 が,廃棄した場合は 100 が格納されている。 (2) 販売リストの印字様式を,図2に示す。見出しは印刷済みとする。
![]() 図2 販売リストの印字様式 @ 販売個数には,販売した弁当の個数を印字する。廃棄した分は合めない。 A 平均値引率には,弁当種別ごとに,販売した弁当の値引率の平均を印字する。 廃棄した分は含めない。全ての弁当を廃棄した場合は,0 を印字する。 B 販売リストには,図3の印字例のように,店舗番号及び弁当種別の昇順に印字する。
![]() 図3 販売リストの印字例 〔プログラム〕
(行番号) 1 DATA DIVISION. 2 FILE SECTION. 3 SD SRT-FILE. 4 Ø1 SRT-REC. 5 Ø2 SRT-STOR PIC 9(2). 6 Ø2 SRT-CODE PIC 9(4). 7 Ø2 SRT-DSCT PIC 9(3). 8 FD SAL-FILE. 9 Ø1 SAL-REC PIC X(9). 1Ø FD PRT-FILE. 11 Ø1 PRT-REC. 12 Ø2 PRT-STOR PIC 9(2). 13 Ø2 PRT-SP1 PIC X(8). 14 Ø2 PRT-CODE PIC 9(4). 15 Ø2 PRT-SP2 PIC X(6). 16 Ø2 PRT-SALNO PIC Z9. 17 Ø2 PRT-SP3 PIC X(8). 18 Ø2 PRT-DSCT PIC Z9. 19 Ø2 PRT-SP4 PIC X(1Ø). 2Ø Ø2 PRT-DSPNO PIC Z9. 21 WORKING-STORAGE SECTION 22 77 SRT-FLAC PIC X(1) VALUE SPACE. 23 88 SRT-EOF VALUE "E". 24 77 CR-STOR PIC 9(2) VALUE ZERO. 25 77 CR-CODE PIC 9(4). 26 77 W-SALNO PIC 9(2). 27 77 W-DSPNO PIC 9(2). 28 77 W-TOTAL PIC 9(4). 29 77 W-DSCT PIC 9(2). 3Ø PROCEDURE DIVISION. 31 MAIN-PROC. 32 OPEN OUTPUT PRT-FILE. 33 SORT SRT-FILE ASCENDING KEY SRT-STOR SRT-CODE 34 USING SAL-FILE 35 OUTPUT PROCEDURE IS RET-PROC. 36 CLOSE PRT-FILE. 37 STOP RUN. 38 RET-PROC. 39 PERFORM UNTlL SRT-EOF 4Ø RETURN SRT-FILE AT END SET SRT-EOF TO TRUE 41 NOT AT END PERFORM CAL-PROC 42 END-RETURN 43 END-PERFORM. 44 PERFORM PRT-PROC. 45 CAL-PROC. 46 IF a THEN 47 PERFORM PRT-PROC 48 MOVE ZERO TO b 49 MOVE SRT-STOR TO CR-STOR 5Ø MOVE SRT-CODE TO CR-CODE 51 END-IF. 52 IF SRT-DSCT = 1ØØ THEN 53 ADD 1 TO W-DSPNO 54 ELSE 55 ADD 1 TO W-SALNO 56 c 57 END-IF. 58 PRT-PROC. 59 IF d THEN 6Ø INITIALIZE PRT-REC 61 MOVE CR-STOR TO PRT-STOR 62 MOVE CR-CODE TO PRT-CODE 63 MOVE W-SALNO TO PRT-SALNO 64 IF W-SALNO NOT = ZERO THEN 65 COMPUTE W-DSCT = W-TOTAL / W-SALNO 66 MOVE W-DSCT TO PRT-DSCT 67 END-IF 68 MOVE W-DSPNO TO PRT-DSPNO 69 WRITE PRT-REC 7Ø END-IF. 設問1 プログラム中の に入れる正しい答えを, 解答群の中から選べ。 a に関する解答群 イ SRT-STOR = CR-STOR OR SRT-CODE = CR-CODE ウ SRT-STOR NOT = CR-STOR AND SRT-CODE NOT = CR-CODE エ SRT-STOR NOT = CR-STOR OR SRT-CODE NOT = CR-CODE b に関する解答群 ウ PRT-STOR PRT-CODE ウ W-DSCT オ W-SALNO W-DSPNO W-TOTAL c に関する解答群 ウ MOVE SRT-DSCT TO W-TOTAL エ MOVE ZERO TO SRT-DSCT オ MOVE ZERO TO W-DSPNO d に関する解答群 ウ NOT SRT-EOF エ SRT-EOF
設問2 図4に示すとおり,販売リストに販売グラフを追加して印字するようにプログラムを変更する。 表1中の に入れる正しい答えを,解答群の中から選べ。
![]() 図4 販売グラフを追加した販売リストの印字例 〔販売グラフの説明〕 弁当を正価で販売した場合は“0”を,20 %引きで販売した場合は“o”を, 50 %引きで販売した場合は“-”を,廃棄した場合は“*”を,該当する個数だけ,この順で印字する。
e に関する解答群 ウ 行番号 56 と 57 の間 エ 行番号 59 と 60 の間 f に関する解答群 エ W-SALNO オ W-TOTAL
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| ||||||||||||