ITパスポート試験 令和7年度公開問題(全100問) トップへ
Part 4(問76〜100)

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

A1,000
B1,500
C3,000
D5,500

解説

この問題は入れ子になった条件分岐をたどって戻り値を求める力を問うものである。関数は改善額が10万円未満かどうかで大きく分かれ、さらに短縮期間が7日未満かどうかで分岐する。1件目は改善額20万円で10万円以上なので外側のelse側に進み、期間3日は7日未満なのでprizeは2000円となる。2件目は改善額5万円で10万円未満なので外側のif側に進み、期間14日は7日以上なのでelseが選ばれprizeは1000円となる。両者の合計は2000+1000=3000円なので、正解はウである。アの1000円は2件目だけ、エの5500円は分岐の取り違え、イの1500円は条件判定の誤りによるもので、いずれも正しい合計3000円と一致しないため誤りである。さらに詳しくはプログラミング基礎で学べます。

次のアクション