![]()
平成23年 春期 基本情報技術者 午後 問10
問10 COBOL次の COBOL プログラムの説明及びプログラムを読んで,設問1,2に答えよ。 〔プログラムの説明〕 小売業のC社では,自社株主へ株主優待として,自社店舗で利用できる商品券を 発行することにした。株主の保有株数と保有期間によって,発行額を決定する。 この会社では,毎年3月 31 日の株取引終了時点で自社株を保有している株主を 対象とした株主一覧を作成しており,商品券は,2011 年3月 31 日に作成した株主一覧に 登録されている個人株主に対して発行する。 このプログラムは,株主ファイルを読み込み,発行する商品券の発行額を商品券ファイルに出力する。 (1) 株主ファイルは,2011 年3月 31 日に作成した株主一覧に登録されている個人株主を 対象に作成した,図1に示すレコード様式の順ファイルである。
図1 株主ファイルのレコード様式 @ 株主番号には,株主に対して一意に割り当てた番号が設定されている。 A 保有株数には,保有する株数が設定されている。保有株数の最大は 999,999 とする。 B 登録年には,最初に株主一覧に登録された年が設定されている。ただし,株をすべて 売却した後に再取得した株主の場合は,再取得後,株主一覧に登録された年が設定される。 (2) 保有期間は,登録年から 2011 年までの年数で決定する。例えば,登録年が 2006 年の場合は5年である。 (3) この会社が株式公開したのは 1990 年4月1日であり,最初に株主一覧へ登録されるのは 1991 年3月 31 日である。したがって,最長保有期間は 20 年である。 (4) 商品券ファイルは,図2に示すレコード様式の順ファイルである。
図2 商品券ファイルのレコード様式 ![]() (行番号) 1 DATA DIVISION. 2 FILE SECTION. 3 FD HOLDER. 4 01 HLD-REC. 5 02 HLD-NO PIC 9(8). 6 02 HLD-STOCK PIC 9(6). 7 02 HLD-YEAR PIC 9(4). 8 FD GIFT. 9 01 GFT-REC. 10 02 GFT-NO PIC 9(8). 11 02 GFT-SUM PIC 9(6). 12 WORKING-STORAGE SECTION. 13 77 READ-FLAG PIC X(1) VALUE SPACE. 14 88 EOF VALUE "E". 15 77 BASE-YEAR PIC 9(4) VALUE 2011. 16 77 TERM PIC 9(4). 17 PROCEDURE DIVISION. 18 MAIN-PROC SECTION. 19 0PEN INPUT HOLDER. 20 0PEN OUTPUT CIFT. 21 PERFORM UNTIL EOF 22 READ HOLDER AT END SET EOF TO TRUE 23 NOT AT END PERFORM SUM-PROC 24 END-READ 25 END-PERFORM. 26 CLOSE HOLDER GIFT. 27 STOP RUN. 28 SUM-PROC SECTION. 29 MOVE HLD-NO TO GFT-NO. 30 COMPUTE TERM = BASE-YEAR - HLD-YEAR. 31 EVALUATE HLD-STOCK ALSO TERM 32 WHEN
設問1 プログラム中の a,b に関する解答群
オ 999 カ 1000 キ ANY ク OTHER c 〜 e に関する解答群
オ 9 カ 10 キ ANY ク OTHER i,g に関する解答群
オ 10000 カ 20000 キ ANY ク OTHER
設問2 保有期間の傾向を確認するため,商品券の発行額の算出と同時に,図3に示す 棒グラフを表示するようプログラムを変更したい。表2中の ![]() (1) 行の先頭に表示してある数字は,保有期間を表す。 (2) “*”は,当該保有期間に該当する株主比率を表す。 (3) 株主比率は,2%未満の端数を切り捨て,“*”一つを2%として表示する。 (4) 目盛りの数字の単位は 10 %である。 ![]() 図3 保有期間別の株主比率の表示例
h に関する解答群
イ ADD 1 TO CNT-HLD(CNT + 1) ウ ADD 1 TO CNT-HLD(CNT - 1) エ ADD 1 TO CNT-HLD(TERM) オ ADD 1 TO CNT-HLD(TERM + 1) カ ADD 1 TO CNT-HLD(TERM - 1) i に関する解答群
イ COMPUTE RATIO = (CNT-ALL * 100 / CNT-HLD(CNT + 1)) / 2 ウ COMPUTE RATIO = (CNT-ALL * 100 / CNT-HLD(CNT - 1)) / 2 エ COMPUTE RATIO = (CNT-HLD(CNT) * 100 / CNT-ALL)/ 2 オ COMPUTE RATIO = (CNT-HLD(CNT + 1) * 100 / CNT-ALL) / 2 カ COMPUTE RATIO = (CNT-HLD(CNT - 1) * 100 / CNT-ALL) / 2
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ] | |||||||||||||