令和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

解答・解説

正解: ウ. 3,000

提示されたプログラム calculateAmountOfPrize に2つの業務改善の数値を当てはめて、それぞれの賞金額を計算します。

  1. 改善額が20万円、短縮期間が3日の場合

    • 引数 improvement に 200000200000、period に 33 が渡されます。
    • 最初の条件 improvement が 100000 より小さい は偽(200000≥100000200000 \ge 100000)となり、else 以下の処理に進みます。
    • 次の条件 period が 7 より小さい は真(3<73 < 7)となります。
    • したがって、賞金額 prize は 20002000 となります。
  2. 改善額が5万円、短縮期間が14日の場合

    • 引数 improvement に 5000050000、period に 1414 が渡されます。
    • 最初の条件 improvement が 100000 より小さい は真(50000<10000050000 < 100000)となります。
    • 次の条件 period が 7 より小さい は偽(14≥714 \ge 7)となり、else 以下の処理に進みます。
    • したがって、賞金額 prize は 10001000 となります。

これら二つの賞金額の合計は以下の通りです。
2000+1000=30002000 + 1000 = 3000

よって、賞金額の合計は 3,0003,000 円となります。

各選択肢の解説

  • ア:2つ目の業務改善の賞金額(1,0001,000 円)のみとなっているため誤りです。
  • イ:両方の改善額が10万円未満だった場合の合計額(500+1000=1500500 + 1000 = 1500)などとなっており誤りです。
  • ウ:正しい合計額であり、正解です。
  • エ:改善額20万円で短縮期間14日の場合(50005000)と、改善額5万円で短縮期間3日の場合(500500)を取り違えて合計した場合(5000+500=55005000 + 500 = 5500)の値などであり誤りです。

Spineチーム