平成19年 秋期 基本情報技術者 午後 問11
問11 COBOL
次の COBOL プログラムの説明及びプログラムを読んで,設問1,2に答えよ。
〔プログラムの説明〕
B社は,取引先あてに請求書と振込用紙を発行し,取引先はその振込用紙を使って C 銀行に
請求金額を振り込む。このプログラムは,毎月 C 銀行から受け取る振込データと,
社内で管理している請求データの突合せを行って,入金確認リストを印字するものである。
突合せキーは,一意に振られている請求書コードである。
(1) 銀行から受け取る振込データ BANK-F は順ファイルで,レコード様式は,
次のとおりである。レコードは,振込日で昇順に整列されている。
振込日 8けた |
請求書コード 6けた |
振込金額 9けた |
取引先名 20 けた |
(2) 社内で管理している請求データ ACCOUNT-F は順ファイルで,レコード様式は,
次のとおりである。レコードは,請求書コードで昇順に整列されている。
請求日 8けた |
請求書コード 6けた |
請求金額 9けた |
取引先名 20 けた |
(3) 入金確認リストの印字様式は,次のとおりである。
摘求書コード 取引先名 入金予定金額 振込金額 差額 入金確認結果
XXXXXX XXX … XX \,\\\,\\\,\\9 \,\\\,\\\,\\9 -,---,---,--9 XXX … XX
XXXXXX XXX … XX \,\\\,\\\,\\9 \,\\\,\\\,\\9 -,---,---,--9 XXX … XX
: : : : : :
|
@ 入金確認リストの見出しは印刷済みとする。
A 入金予定金額には請求金額を印字する。
B 入金確認結果は,次の4種類のいずれかを印字する。
| 印字メッセージ | 意味 |
| OK | 入金予定金額と振込金額が一致 |
| UNMATCH | 金額不一致 |
| NOT PAID | 振込みなし |
| NO BILL | 請求なし |
〔プログラム〕
(行番号)
1 DATA DIVISION.
2 FILE SECTION.
3 FD BANK-F.
4 01 BANK-R PIC X(43).
5 SD SORT-F.
6 01 SORT-R.
7 05 BANK-DATE PIC 9(8).
8 05 BANK-BILL-CD PIC X(6).
9 05 BANK-AMOUNT PIC 9(9).
10 05 BANK-CUSTOMER-NM PIC X(20).
11 FD ACCOUNT-F.
12 01 ACCOUNT-R.
13 05 ACCOUNT-DATE PIC 9(8).
14 05 ACCOUNT-BILL-CD PIC X(6).
15 05 ACCOUNT-AMOUNT PIC 9(9).
16 05 ACCOUNT-CUSTOMER-NM PIC X(20).
17 FD PRINT-F.
18 01 PRINT-R PIC X(128).
19 WORKING-STORACE SECTION.
20 01 W-BANK-BILL-CD PIC X(6).
21 01 W-ACCOUNT-BILL-CD PIC X(6).
22 01 P-DETAIL.
23 05 P-BILL-CD PIC X(6).
24 05 FILLER PIC X(6).
25 05 P-CUSTOMER-NM PIC X(20).
26 05 FILLER PIC X.
27 05 P-ACCOUNT-AMOUNT PIC \,\\\,\\\,\\9.
28 05 FILLER PIC X.
29 05 P-BANK-AMOUNT PIC \,\\\,\\\,\\9.
30 05 FILLER PIC X.
31 05 P-DIFF PIC -,---,---,--9.
32 05 FILLER PIC X.
33 05 P-MESSACE PIC X(30).
34 PROCEDURE DIVISION.
35 MAIN-CTL.
36 SORT SORT-F ASCENDING KEY
37 USING BANK-F
38 OUTPUT PROCEDURE MATCH-PROC.
39 STOP RUN.
40 MATCH-PROC.
41 OPEN INPUT ACCOUNT-F.
42 OPEN OUTPUT PRINT-F.
43 PERFORM RETURN-BANK.
44 PERFORM READ-ACCOUNT.
45 PERFORM UNTIL W-BANK-BILL-CD = HIGH-VALUE AND
46 W-ACCOUNT-BILL-CD = HIGH-VALUE
47 MOVE SPACE TO P-DETAIL
48 EVALUATE TRUE
49 WHEN W-BANK-BILL-CD > W-ACCOUNT-BILL-CD
50 MOVE ACCOUNT-CUSTOMER-NM TO P-CUSTOMER-NM
51 MOVE ACCOUNT-BILL-CD TO P-BILL-CD
52 MOVE ACCOUNT-AMOUNT TO P-ACCOUNT-AMOUNT
53
54 WRITE PRINT-R FROM P-DETAIL
55 PERFORM READ-ACCOUNT
56 WHEN W-BANK-BILL-CD = W-ACCOUNT-BILL-CD
57 MOVE BANK-CUSTOMER-NM TO P-CUSTOMER-NM
58 MOVE ACCOUNT-BILL-CD TO P-BILL-CD
59 MOVE ACCOUNT-AMOUNT TO P-ACCOUNT-AMOUNT
60 MOVE BANK-AMOUNT TO P-BANK-AMOUNT
61 IF BANK-AMOUNT - ACCOUNT-AMOUNT = O THEN
62 MOVE "OK" TO P-MESSACE
63 ELSE
64
65 END-IF
66 COMPUTE P-DIFF = BANK-AMOUNT - ACCOUNT-AMOUNT
67 WRITE PRINT-R FROM P-DETAIL
68 PERFORM READ-ACCOUNT
69 PERFORM RETURN-BANK
70 WHEN W-BANK-BILL-CD < W-ACCOUNT-BILL-CD
71 MOVE BANK-CUSTOMER-NM TO P-CUSTOMER-NM
72 MOVE BANK-BILL-CD TO P-BILL-CD
73 MOVE BANK-AMOUNT TO P-BANK-AMOUNT
74
75 WRITE PRINT-R FROM P-DETAIL
76
77 END-EVALUATE
78 END-PERFORM.
79 CLOSE ACCOUNT-F.
80 CLOSE PRINT-F.
81 *
82 RETURN-BANK.
83 RETURN SORT-F
84 AT END MOVE HIGH-VALUE TO W-BANK-BILL-CD
85 NOT AT END MOVE BANK-BILL-CD TO W-BANK-BILL-CD
86 END-RETURN.
87 *
88 READ-ACCOUNT.
89 READ ACCOUNT-F
90 AT END MOVE HIGH-VALUE TO W-ACCOUNT-BILL-CD
91 NOT AT END MOVE ACCOUNT-BILL-CD TO W-ACCOUNT-BILL-CD
92 END-READ.
設問1 プログラム中の に入れる正しい答えを,
解答群の中から選べ。
a に関する解答群
ア BANK-AMOUNT イ BANK-BILL-CD
ウ BANK-CUSTOMER-NM エ BANK-DATE
b〜e に関する解答群
ア MOVE "NO BILL" TO P-MESSAGE
イ MOVE "NOT PAID" TO P-MESSACE
ウ MOVE "UNMTCH" TO P-MESSACE
エ PERFORM READ-ACCOUNT
オ PERFORM RETURN-BANK
イ
イ
ウ
ア
オ
基本情報技術者試験
設問2 B社への振込手数料は,取引先が負担していたが,一部の大口取引に対しては,
B社が振込手数料を負担することにした。この場合,銀行から受け取る振込金額は,
請求金額から振込手数料を差し引いた金額となる。振込手数料の金額とその負担先は,
請求金額によって決定される。振込手数料の計算には,次の様式の
手数料計算プログラム CHARCE を使用する。
CALL "CHARCE" USING 請求金額 振込手数料
手数料計算プログラムは,請求金額を基に,振込手数料を返す。ただし,B社が
負担しない場合はゼロを返す。
この対応のため,プログラムを変更する。入金確認リストの入金予定金額は
請求金額から振込手数料を差し引いた金額を印字する。次の表中の に
入れる正しい答えを,解答群の中から選べ。
| 処置 | プログラムの変更内容 |
| 行番号 33 と 34 の間に追加 | 01 W-CHARCE PIC 9(6). |
及び 
に追加 | CALL "CHARCE" USING ACCOUNT-AMOUNT W-CHARCE
COMPUTE ACCOUNT-AMOUNT = ACCOUNT-AMOUNT - W-CHARGE |
解答群
ア 行番号 47 と 48 の間 イ 行番号 49 と 50 の間
ウ 行番号 56 と 57 の問 エ 行番号 70 と 71 の間
イ
ウ
[←前の問題]
[次の問題→]
[問題一覧表]
[分野別]
[基本情報技術者試験TOP
]
©2004-2025 情報処理試験.jp
|
|
|