ITパスポート|アルゴリズムとプログラミング 問4
関数 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件目
- 改善額 200,000 は 100,000 より小さくないので else 側へ。短縮期間 3 は 7 より小さいので 2,000円
- 2件目
- 改善額 50,000 は 100,000 より小さいので if 側へ。短縮期間 14 は 7 より小さくないので 1,000円
- 合計
- 2,000 + 1,000 = 3,000円
- ウ 正解。賞金額の合計は 3,000円です。
出典:令和7年度 ITパスポート試験 公開問題 問99(読点「,」を「、」に改変)