平成23年度特別 ITパスポート 問94 解説
中問B(問93〜96)
プログラミングとテストに関する次の記述を読んで,問93~96に答えよ。
Q社のRさんは,チケット販売システムの開発で使用する関数のプログラミングとテストを実施しようとしている。この関数は,大人と子供のチケットの購入希望枚数を基に,合計金額の計算を行う。大人のチケットは3,000円,子供のチケットは1,000円である。一度に購入できる大人と子供のチケットの最高枚数は,それぞれ20枚までであり,関数はこの購入条件を満たしているかどうかをチェックする。また,合計で20枚以上購入する場合,割引処理を行う。関数の仕様と処理内容は次のとおりである。
〔関数の仕様〕
関数に渡される引数
J:大人のチケットの購入希望枚数,K:子供のチケットの購入希望枚数
(J,Kは0以上の整数)
関数の戻り値
L:合計金額 (Lは整数)
〔処理内容〕
(1) 購入希望枚数を基に,購入条件を満たしているかどうかを判定する。購入条件を満たしていない場合,合計金額に-1を代入する。
(2) 購入条件を満たしている場合,引数を基に次のとおりに合計金額の計算を行う。
合計金額 = 大人のチケットの購入希望枚数×3,000+子供のチケットの購入希望枚数×1,000
(3) チケットを合計で20枚以上購入した場合は,合計金額から1割を割り引く。
関数のテストを行うために,条件のすべての組合せと処理を整理したものを表1に示す。表1のb,cに入れる適切な字句の組合せはどれか。

- アb:X c:X
- イb:X c:-
- ウb:- c:X
- エb:- c:-
答えを見る
正解 アb:X c:X
要点決定表は条件の組合せごとに実行する処理を整理する
解説
決定表(デシジョンテーブル)で各列の処理を確認します。
- ②:J、Kとも0以上20以下(Y、Y)でJ+Kが20以上(N)なので、合計金額を求め1割引とする → b:X
- ④:Jが範囲外(N)なので購入条件を満たさず、J+Kにかかわらず合計金額に-1を代入する → c:X
よって正解はアです。