必ず受かる情報処理技術者試験

当サイトは、情報処理技術者試験に合格するためのWebサイトです。
ITパスポート試験,基本情報技術者,応用情報技術者,高度試験の過去問題と解答及び詳細な解説を掲載しています。
  1. トップページ
  2. ITパスポート
  3. 平成23年度特別問題
  4. 平成23年度特別解答・解説

平成23年度特別解答

【中間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割を割り引く。

問題93

関数の処理の流れを図1に示す。図1のaに入れる適切な条件式はどれか。

0≦J≦20 and 0≦K≦20
0≦J≦20 or 0≦K≦20
0≦J+K≦20
J>20 and K>20

解答:ア

<解説>

  1. 分岐条件でNoと判断されると、L=-1処理が行われる。[処理内容](1)の記述から、[ a ]は、購入条件の判定処理だと分かる。
  2. 購入条件は、KとJが両方とも0~20であることなので、正解はアである。

問題へ

問題94

関数のテストを行うために、条件のすべての組合せと処理を整理したものを表1に示す。表1のb,cに入れる適切な字句の組合せはどれか。

解答:ア

<解説>

【bについて】

bは、次の条件を満たす場合である。

  • Jが0以上20以下である。
  • Kが0以上20以下である。
  • J+Kが20より大きい。

よって合計金額を1割引とする。⇒bは"X"である。

【cについて】

cは、次の条件を満たす場合である。

  • Jが0以上20でない。
  • Kが0以上20以下である。
  • J+Kが20より小さい。

よって購入条件を満たしていないので、合計金額に-1を代入する。⇒cは"X"である。

問題へ

問題95

関数をテストするために用意したテストデータと予想結果の一部を表2に示す。表2のd,eに入れる値の組合せはどれか。

解答:イ

<解説>

下記より、イが正解である。

【dについて】

dは、下記のとおりである。。

  • J=15,K=15なので、0≦J≦20 かつ 0≦K≦20の条件に該当するので、購入条件を満たしている。
  • 合計の枚数が20枚以上のため、合計金額を1割引とする

よって

    (3000×15+1000×15)×0.9
  (45,000+15,000)+0.9
  60,000×0.9
  =54,000

となる。

【eについて】

eは、下記のとおりである。。

  • J=10,K=30なので、0≦J≦20 かつ 0≦K≦20の条件に該当しない、購入条件を満たしていない。

よって-1となる。

問題へ

問題96

1日券、2日券といった日数の異なる種類のチケットを金額計算に対応できるように、[処理内容]の(2)及び関数の仕様を変更し、引 数にチケットの日数を表すMを追加した。Mには使用できる日数が入る。種類別のチケット金額を設定する配列をTP(M,N)とする。Nは大人の場合は1、 子供の場合は2とする。配列の値は次のとおりである。引数がJ=10、K=20、M=2のときの合計金額は何円か。なお、関数は、引数に応じてこの配列を 参照し、チケット金額を決定する。

  [配列の値]
  TP(1,1) = 3,000,TP(1,2) = 1,000,
  TP(2,1) = 4,000,TP(2,2) = 1,500,
  TP(3,1) = 5,000,TP(3,2) = 2,000
45,000
50,000
63,000
70,000

解答:ウ

<解説>

  1. 配列には、TP(①,②)の意味がある。
      使用できる日数(M日券)
      大人(1)または子供(2)
  2. 引数が①J=10、②K=20、③M=2である。
      大人のチケットの購入希望枚数は10枚
      子供のチケットの購入希望枚数は20枚
      使用できる日数(M日券)は2日件
  3. 1,2より参照する配列と計算式が分かる。
      TP(2,1)=4,000円×10=40,000円
      TP(2,2)=1,500円×20=30,000円
  4. チケットを合計で20枚以上購入しているので、合計金額から1割を割り引く。
      40,000円+30,000円×0.9=(ウ)63,000円

問題へ