過去問解きまくり研究所 ホーム

令和7年度 問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

解説

二重の分岐を二回たどり、二つの賞金を足し合わせて求めます。

この関数は、改善額で二つに分け、そのそれぞれの中で短縮期間によってさらに二つに分けます。境目は改善額が十万円、短縮期間が七日です。一つ目は改善額二十万円なので十万円より小さくない側に進み、短縮期間三日なので七日より小さい側に進んで、二千円です。二つ目は改善額五万円なので十万円より小さい側に進み、短縮期間十四日なので七日より小さくない側に進んで、千円です。合わせて三千円になります。設問は万円、プログラムは円で書かれているので、桁をそろえてから比べる必要があります。二十万円は二十万、五万円は五万として比べます。分岐が二重なので、どちらの枝も最後まで追う必要があります。

ほかの選択肢はなぜ違うのか

この問題の用語

出典:令和7年度 ITパスポート試験 問99(改変:原典の図表をテキストに書き起こした)

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)