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

基礎理論|平成23年度 特別 ITパスポート試験 問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,000TP(1,2)= 1,000
M=2(2 日券)TP(2,1)= 4,000TP(2,2)= 1,500
M=3(3 日券)TP(3,1)= 5,000TP(3,2)= 2,000

解説

日数の行を選んでから、大人と子供の値を取り出します。

金額は、日数と区分の二つで決まる表に置かれました。縦の並びが日数で、横の並びが大人と子供です。設問の日数は二日なので、二行目を選びます。その行の大人の値は四千円、子供の値は千五百円でした。大人の枚数は十枚なので、四万円になります。子供の枚数は二十枚なので、三万円になりました。どちらも二十枚までなので、買える条件は満たします。足すと七万円ですが、まだ終わりませんでした。合計の枚数は三十枚で、二十枚を超えています。だから一割を引いて、六万三千円になりました。この数を挙げた肢が当たり、行の選び方が要でした。一日の行を選ぶと、五万円のほうへ寄ってしまいます。割り引く手を落とすと、七万円のほうへ寄りました。行を先に決めるのが要でした。シラバスも、配列をデータ構造の考え方として挙げています。

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

この問題に関係する言葉

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

この問題を演習で解く

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

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