平成23年度 特別 問96
基礎理論
配列に関する問題
〔中問B・プログラミングとテスト〕〔テクノロジ〕1 日券,2 日券といった日数の異なる種類のチケットの金額計算に対応できるように,〔処理内容〕の 2 及び関数の仕様を変更し,引数にチケットの日数を表す M を追加した。M には使用できる日数が入る。種類別のチケット金額を設定する配列を TP(M,N)とする。N は大人の場合は 1,子供の場合は 2 とする。配列の値は次のとおりである。引数が J=10,K=20,M=2 のときの合計金額は何円か。なお,関数は,引数に応じてこの配列を参照し,チケット金額を決定する。
〔中問B の記述(抜粋・再掲)〕チケット販売システムの関数は,大人と子供のチケットの購入希望枚数 J,K を基に合計金額 L を計算する。一度に購入できる枚数はそれぞれ 20 枚までであり,購入条件を満たしていない場合は合計金額に −1 を代入する。合計で 20 枚以上購入する場合は,合計金額から 1 割を割り引く。
〔配列の値〕
| N=1(大人) | N=2(子供) | |
|---|---|---|
| M=1(1 日券) | TP(1,1)= 3,000 | TP(1,2)= 1,000 |
| M=2(2 日券) | TP(2,1)= 4,000 | TP(2,2)= 1,500 |
| M=3(3 日券) | TP(3,1)= 5,000 | TP(3,2)= 2,000 |
- ア45,000
- イ50,000
- ウ63,000
- エ70,000
答えと解説を見る
✓ これが正解ウ63,000
解説
日数の行を選んでから、大人と子供の値を取り出します。
金額は、日数と区分の二つで決まる表に置かれました。縦の並びが日数で、横の並びが大人と子供です。設問の日数は二日なので、二行目を選びます。その行の大人の値は四千円、子供の値は千五百円でした。大人の枚数は十枚なので、四万円になります。子供の枚数は二十枚なので、三万円になりました。どちらも二十枚までなので、買える条件は満たします。足すと七万円ですが、まだ終わりませんでした。合計の枚数は三十枚で、二十枚を超えています。だから一割を引いて、六万三千円になりました。この数を挙げた肢が当たり、行の選び方が要でした。一日の行を選ぶと、割り引く前が五万円、割り引いた後が四万五千円になります。割り引く手を落とすと、七万円のほうへ寄りました。行を先に決めるのが要でした。シラバスも、配列をデータ構造の考え方として挙げています。
ほかの選択肢はなぜ違うのか
- ア45,000:四万五千円を挙げた肢のほうです。一日の行を選んだうえで、一割を引いた値でした。日数が二日なので、選ぶのは二行目です。大人は四千円、子供は千五百円になりました。表の読み方を確かめます。割り引く手は合っています。選ぶ行だけが違いました。
- イ50,000:五万円を挙げた肢というのが、こちらです。一日の行を選び、割り引く手も落とすと、ちょうどこの数でした。大人は三千円、子供は千円になります。ところが設問の日数は、二日でした。選ぶ行が一つ上です。日数を読み落としています。行が一つ上でした。
- エ70,000:七万円を挙げた肢が、こちらに当たります。二行目を選ぶところまでは、合っていました。足した値も、確かに七万円になります。けれども合計は三十枚で、二十枚を超えました。一割を引く手が残っています。最後の一手が抜けました。一割を引きます。
この問題の用語
- ログいつ誰が何をしたかを、機器やソフトウェアが自動で残していく記録です。あとから出来事をたどれるので、事故の調査や不正の発見に使われます。
- テスト決めたとおりに動くかを、実際に動かして確かめる作業のこと。何を確かめるかによって移行テスト、システムテストなどと呼び分けます。
出典:平成23年度 特別 ITパスポート試験 問96(改変:原典の図表をテキストに書き起こした)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)