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に入れる適切な字句の組合せはどれか。 表1 条件のすべての組合せと処理
| ① | ② | ③ | ④ | ⑤ | ⑥ | ⑦ | ⑧ | ||
|---|---|---|---|---|---|---|---|---|---|
| 条件 | Jが0以上20以下 | Y | Y | N | N | Y | Y | N | N |
| 条件 | Kが0以上20以下 | Y | Y | Y | Y | N | N | N | N |
| 条件 | J+Kが20より小さい | Y | N | Y | N | Y | N | Y | N |
| 処理 | 合計金額を求める | X | X | ||||||
| 処理 | 合計金額を1割引とする | - | b | ||||||
| 処理 | 合計金額に−1を代入する | - | - | c |
注記1 網掛けの部分は,表示していない。 注記2 Yは条件に該当し,Nは条件に該当しない。Xは処理を実行し,-は処理を実行しない。例えば①の場合,三つの条件に対する結果が,Y,Y,Yとなったとき,合計金額を求める処理が実行されることを示す。