プログラミングとテストに関する次の記述を読んで、問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割を割り引く。 |
[デクノロジ]
|
[マネジメント]
|
[マネジメント]
|
[テクノロジ]
|
答え
問93 ア 問94 ア
問95 イ 問96 ウ
【解説】
問93 | 一度に購入できるチケットの数は大人と子供それぞれ20枚までなので、大人のチケット購入希望枚数(J)は0以上20以下であり、子供のチケット購入希望枚数(K)は0以上20以下であり、どちらか一方でもこの条件を満たさなければ購入できないので、条件式としては 0 ≤ J ≤ 20 and 0 ≤ K ≤ 20 (ア)になる。 |
問94 | Aの条件はJが0以上20以下、Kが0以上20以下で、J+Kが20以上の場合なので、“合計金額を1割引きとする”処理が行われる。 Cの条件はJが20より大きく、Kが0以上20以下、J+Kが20以上の場合なので、“合計金額に-1を代入する”処理が行われる。 ※Aの“合計金額を求める”のところは“X”ではなく“−”だと思います。 |
問95 | dはJ = 15、K = 15でJ+K=30なので合計金額を1割引きする計算が行われるので L = 0.9×(3,000×J + 1,000×K) = 0.9×(3,000×15 + 1,000×15) = 54,000 になる。 eは、J = 20、K = 30でKが20以上なので合計金額は-1になる。 |
問96 | M = 2(2日券)の時の大人のチケットはTP(2, 1)で4,000円で、子供のチケットはTP(2, 2)で1,500円であり、J = 10、K = 20でJ + K = 30なので、“合計金額を1割引きとする”処理が行われ L = 0.9×(4,000×J + 1,500×K) = 0.9×(4,000×10 + 1,500×20) = 63,000 (ウ)になる。 |