過去問解きまくり研究所 ホーム

基礎理論|平成23年度 特別 ITパスポート試験 問93

〔中問B・プログラミングとテスト〕〔テクノロジ〕関数の処理の流れを図1に示す。図1の a に入れる適切な条件式はどれか。

〔中問B の記述(抜粋・再掲)〕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 関数の処理の流れ図〕当課が流れを字で書き起こしたもの

```
開始

〈判断〉 a ?
├─ No ─→ L = −1 ────────┐
└─ Yes │
↓ │
〈判断〉 J + K ≧ 20 ? │
├─ No ─→ L = 3,000×J + 1,000×K ─┤
└─ Yes │
↓ │
L = 0.9×(3,000×J + 1,000×K)─┤

終了
```

解説

二つの枚数が、どちらも上限の内に収まる条件を書きます。

この関数は、まず買える条件を満たすかを判じます。満たさなければ、合計に負の一を入れて返しました。買える条件は、大人と子供のそれぞれに置かれています。どちらも二十枚までで、零を下回ることもありません。つまり二つの枚数が、それぞれ範囲の内に在ることが要ります。だから二つの条件を、かつで結んだ式が入りました。この式を挙げた肢が当たり、両方を満たす形になります。またはで結ぶと、片方だけでも通ってしまいました。大人が三十枚でも、子供が範囲内なら通ってしまいます。二つを足した数で判じる式も、条件が違いました。足して二十以内でも、片方が二十を超えることがあります。どちらも二十を超えると書いた式は、向きが逆でした。そちらは、買えない場合を表す式になります。シラバスも、流れ図による表現を学ぶよう求めています。

ほかの選択肢はなぜ違うのか

この問題に関係する言葉

出典:平成23年度 特別 ITパスポート試験 問93(改変:原典の図表をテキストに書き起こした)

この問題を演習で解く

同じ単元をまとめて解くなら基礎理論へ。

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)