ITパスポート 平成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(改変:原典の図表をテキストに書き起こした)
解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。
関連問題
- 令和8年度 問67:
整列に 関する 問題 (配列) - 令和8年度 問85:
素数に 関する 問題 (引数) - 令和6年度 問85:
基数に 関する 問題 (引数) - 令和6年度 問62:
配列に 関する 問題 (配列) - 令和5年度 問69:
配列に 関する 問題 (配列)
同じ分野の問題
誤りを見つけたら報告する