関数 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

なぜ違う: これは2件目のみの賞金額で,1件目の2000円が加算されていない。

イ 1,500

なぜ違う: 1件目を短縮期間3日から500円,2件目を短縮期間14日から1,000円と判定し,改善額による外側の分岐を1件目で見落とした合計である。1件目は2,000円になる。

ウ 3,000
エ 5,500

なぜ違う: 内側の短縮期間の判定を2件とも逆に取り違えた合計。1件目を5,000円(本来は3日<7なので2,000円),2件目を500円(本来は14日≧7なので1,000円)とすると5,500円になる。

正解: ウ

要点: 改善額20万・3日→2000,改善額5万・14日→1000,合計3000。

1件目は改善額200000円(100000以上)かつ短縮期間3日(7未満)なので外側else・内側ifでprize←2000。2件目は改善額50000円(100000未満)かつ短縮期間14日(7以上)なので外側if・内側elseでprize←1000。合計2000+1000=3000円。

この問題に出てくる用語

関連キーワード: 計算・擬似言語・条件分岐・トレース

同じ回の前後の問題

テクノロジ系の他の問題

アプリで弱点分析つきの演習ができます

App Store

ITパスポートの学習アプリ(ITパストレ)

出典:令和7年度 ITパスポート試験 公開問題 問99