問16 プログラム設計に関する次の記述を読んで,設問 1 〜 3 に答えよ。
企業間取引における支払は,一般に現金及び手形で行われる。A 社の場合 は,現金,3 か月手形及び 4 か月手形の 3 種類に分割して支払われ,分割方法は, 支払明細ごとに決められる。
A 社では,この処理を行う支払分割プログラムを作成することになった。
〔支払明細ファイルの説明〕
(1) ファイルのレコード様式は,次のとおりである。
(2) レコードは,“支払先コード”の昇順に整列されている。
(3) 支払う“金額”(正の整数値)と支払いの分割方法を指定する“区分”とが 格納されている。プログラムは,“区分”の値(“F”,“0”,“3”又は“4”)に 対応して処理を行う。
〔分割割合ファイルの説明〕
(2) “支払先コード”をキーとする索引ファイルである。
(3) 支払先ごとの現金,3 か月手形及び 4 か月手形への分割割合が,合計で 100 %と なるように,百分率(0 〜 100 の整数値)で格納されている。
〔支払ファイルの説明〕
(2) 支払先ごとに現金,3 か月手形及び 4 か月手形のそれぞれの金額を集計して 格納する。
〔プログラムの説明〕
(1) 支払明細ファイルを読み,次の条件に従って支払金額を分割する。
支払明細ファイルのレコードの区分が“F”の ときは,“通常分割”として処理する。このときは,分割割合ファイルから分割割合を得て, 現金,3 か月手形及び 4 か月手形のそれぞれの金額を計算する。3 か月手形及び 4 か月手形 の場合は,小数点以下切捨てとし,支払明細ファイルの金額との差額は,現金の額で補正する。
支払明細ファイルのレコードの区分が, “0”,“3”及び“4”のときは,“特別分割”として処理する。“0”のときは支払明細 ファイルの金額の全額を現金とし,“3”のときは全額を 3 か月手形とし,“4”のときは 全額を 4 か月手形とする。
支払明細ファイルのレコードの区分が, “F”,“0”,“3”及び“4”以外のときは,エラーである。このときは,支払明細 ファイルの内容をエラーファイルに出力する。
(2) エラーとなった明細を除き,支払先ごとに現金の金額,3 か月手形の金額及び 4 か月手形の金額のそれぞれを集計し,支払ファイルに出力する。
(3) 入出力関連図を図 1 に,モジュール構造図を図 2 に示す。
図1 入出力関連図
図2 モジュール構造図
設問1 図 2 の第 3 階層及び第 4 階層の最下位のモジュールのうち,“区分”が 入力として必要なものを,解答群の中から選べ。
解答群
ア 集計処理 イ 通常分割 ウ 特別分割 エ 分割初期化 オ 明細エラー
設問2 図 3 は,主処理と明細分割の流れ図である。図中の に入れる正しい答えを,解答群の中から選べ。
図3 主処理と明細分割の流れ図
a に関する解答群
ア 支払明細ファイルの終わり
イ 支払明細ファイルの金額 > 0,又は支払明細ファイルの終わり
ウ 支払明細ファイルの金額 ≦ 0
エ 支払明細ファイルの金額 = 0,又は支払明細ファイルの支払先コードが変わる
オ 支払明細ファイルの金額 = 0,かつ支払明細ファイルの支払先コードが変わる
カ 支払明細ファイルの金額の累計 ≦ 0,かつ支払明細ファイルの区分が変わる
キ 支払明細ファイルの金額の累計 ≦ 0,又は支払明細ファイルの終わり
ク 支払明細ファイルの区分が変わる,又は支払明細ファイルの終わり
ケ 支払明細 ファイル の支払先コードが変わる, 又は支払明細ファイル の終わり
コ 支払明細ファイルの支払先コードが変わる,又は支払明細ファイルの区分が変わる
b,c に関する解答群
ア (区分 ≠“0”)or(区分 ≠“3”)or(区分 ≠“4”)
イ (区分 ≠“F”)or((区分 ≠“0”)and(区分 ≠“3”)and(区分 ≠“4”))
ウ (区分 ≠“F”)or(区分 ≠“0”)or(区分 ≠“3”)or(区分 ≠“4”)
エ (区分 =“0”)or(区分 =“3”)or(区分 =“4”)
オ (区分 =“F”)or((区分 ≠“0”)and(区分 ≠“3”)and(区分 ≠“4”))
カ (区分 =“F”)or(区分 =“0”)or(区分 =“3”)or(区分 =“4”)
キ not((区分 ≠“0”)or(区分 ≠“3”)or(区分 ≠“4”))
ク not((区分 =“0”)or(区分 =“3”)or(区分 =“4”))
ケ 区分 ≠“F”
コ 区分 =“F”
設問3 図 4 は,通常分割の流れ図である。図中の に入れる正しい答えを, 解答群の中から選べ。
〔通常分割の流れ図の説明〕
“金額”は,支払明細ファイルの値である。“3 か月手形の割合”, “4 か月手形の割合”は,分割割合ファイルの値である。除算の計算結果は, 小数点以下を切り捨てる。
図4 通常分割の流れ図
ア 金額 − w3
イ 金額 − w3 − w4
ウ 金額 − w4
エ 金額 ×(100 − 3 か月手形の割合 − 4 か月手形の割合)÷ 100
オ 金額 × 現金の割合 ÷ 100