令和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
出典:令和7年度 ITパスポート試験 問99
- ア1,000
- イ1,500
- ウ3,000
- エ5,500
正解:ウ
解説
1件目は改善額が20万円(200000)で,100000より小さくないので else 側に進みます。短縮期間は3日で,7より小さいので prize は2000です。2件目は改善額が5万円(50000)で,100000より小さいので上側に進みます。短縮期間は14日で,7より小さくないので prize は1000です。合計は 2000+1000=3000円です。
選択肢ごとの解説
- ア誤り。1,000は2件目の賞金額だけです。1件目の2,000円を加える必要があります。
- イ誤り。1,500は500と1,000の合計ですが,1件目は改善額が100000以上なので500にはなりません。
- ウ正しい。1件目が2,000円,2件目が1,000円で,合計は3,000円です。
- エ誤り。5,500は500円と5,000円の合計などにあたり,分岐を取り違えた値です。1件目は2,000円,2件目は1,000円です。