令和7年度 問99
賞金額を求める関数
出典: 令和7年度 ITパスポート試験 公開問題 問99 (IPA)
関数 calculateAmountOfPrize は,業務改善の効果における改善額と短縮期間を,それぞれ improvement と period で受け取り,賞金額を戻り値とする。改善額が 20 万円で短縮期間が 3 日の業務改善と,改善額が 5 万円で短縮期間が 14 日の業務改善があった。この二つの賞金額の合計は何円か。ここで,改善額と短縮期間の値はそれぞれ 0 以上とする。
〔プログラム〕
○整数型: calculateAmountOfPrize(整数型: improvement, // 改善額(円)
整数型: period) // 短縮期間(日)
整数型: prize // 賞金額(円)
if (improvement が 100000 より小さい)
if (period が 7 より小さい)
prize ← 500
else
prize ← 1000
endif
else
if (period が 7 より小さい)
prize ← 2000
else
prize ← 5000
endif
endif
return prize- ア 1,000
- イ 1,500
- ウ 3,000
- エ 5,500
正解と解説を見る
正解: ウ
- ア: 1,000 円は、2 つ目の賞金額だけです。1 つ目の 2,000 円を足していません。
- イ: 1,500 円になる組合せはありません。
- ウ: 2,000 円 (20 万円・3 日) と 1,000 円 (5 万円・14 日) の合計 3,000 円です。正しい答えです。
- エ: 5,500 円は、1 つ目を 5000 円、2 つ目を 500 円と取り違えた場合です。
ポイント
関数の条件を順に見ます。
- 改善額が 100000 より小さい (10 万円未満)
・短縮期間が 7 日より小さい → 500
・それ以外 → 1000 - 改善額が 10 万円以上
・短縮期間が 7 日より小さい → 2000
・それ以外 → 5000
1 つ目 (改善額 20 万円、3 日): 10 万円以上、7 日未満 → 2,000 円
2 つ目 (改善額 5 万円、14 日): 10 万円未満、7 日以上 → 1,000 円
合計は 2,000 + 1,000 = 3,000 円 です。
広告
「アルゴリズムとプログラミング」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)
広告