令和7年度 ITパスポート 問99 解説
関数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
答えを見る
正解 ウ3,000
要点条件分岐を順にたどって各賞金額を求めて合計する
解説
それぞれの業務改善を関数に当てはめます。
- 改善額200,000円、短縮期間3日:improvementは100,000以上なのでelse側へ。periodは7より小さいのでprize=2,000
- 改善額50,000円、短縮期間14日:improvementは100,000より小さいのでif側へ。periodは7以上なのでprize=1,000
合計=2,000+1,000=3,000[円]となり、ウが正解です。
- ア:1,000は2件目だけの金額なので誤り。
- イ:1,500は500と1,000の組合せで、1件目の判定を誤っているので誤り。
- エ:5,500は5,000と500の組合せで、短縮期間の判定を逆にしているので誤り。