平成23年度 特別 ITパスポート試験 問94
マネジメント/開発技術【中問B(問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に入れる適切な字句の組合せはどれか。 表1 条件のすべての組合せと処理 条件(Y:条件に該当する,N:条件に該当しない) (各列は「Jが0以上20以下,Kが0以上20以下,J+Kが20より小さい」の順) ①:Y,Y,Y ②:Y,Y,N ③:N,Y,Y ④:N,Y,N ⑤:Y,N,Y ⑥:Y,N,N ⑦:N,N,Y ⑧:N,N,N 処理(X:処理を実行する,-:処理を実行しない) ①:合計金額を求める=X,合計金額を1割引とする=-,合計金額に−1を代入する=- ②:合計金額を求める=X,合計金額を1割引とする=b,合計金額に−1を代入する=- ④:合計金額に−1を代入する=c (③,⑤〜⑧の処理は表示していない) (注:本サイトでは原問題の表を文字表記に変換しています) 例えば①の場合,三つの条件に対する結果が,Y,Y,Y となったとき,合計金額を求める処理が実行されることを示す。
出典:平成23年度 特別 ITパスポート試験 問94
- アb:X,c:X
- イb:X,c:-
- ウb:-,c:X
- エb:-,c:-
正解:ア
解説
② は J・K がともに 0 以上 20 以下で購入条件を満たし,かつ J + K が 20 以上(20 より小さくない)の場合です。この場合は合計金額を求めたうえで 1 割引きにするので,b は X(実行する)です。④ は J が 0 以上 20 以下ではない(購入条件を満たさない)場合なので,合計金額に −1 を代入する処理を実行します。よって c も X です。
選択肢ごとの解説
- ア正しい。② は購入条件を満たして合計 20 枚以上なので割引処理を実行(b = X),④ は購入条件を満たさないので −1 を代入する処理を実行(c = X)します。
- イ誤り。b は X で合っていますが,④ は購入条件を満たさないので −1 を代入する処理を実行する(c = X)ため,c が「-」は誤りです。
- ウ誤り。② は合計 20 枚以上で割引処理を実行するので b は X です。b が「-」は誤りです。
- エ誤り。b も c も,実行する(X)が正しい値です。