ITパスポート 過去問
令和7年度
問99 (テクノロジ系 問44)
問題文
[プログラム]
◯整数型: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
このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。
問題
ITパスポート試験 令和7年度 問99(テクノロジ系 問44) (訂正依頼・報告はこちら)
[プログラム]
◯整数型: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
- 1000
- 1500
- 3000
- 5500
正解!素晴らしいです
残念...
この過去問の解説 (3件)
01
プログラムを読んで、動作を検証する問題です。
戸惑うかもしれませんが、落ち着いて一つ一つの動作を検証しましょう。
改善額が20万円で短縮期間が3日の場合。
1.改善額が10万円を超えているので、elseに進みます。
2.短縮期間は7日未満なので、prizeは2000になります。
改善額が5万円で短縮期間が14日
1.改善額が10万円未満なので、ifに進みます。
3.短縮期間は7日を超えているので、prizeは1000になります。
合計すると3000になります。
本選択肢は不正解です。
本選択肢は不正解です。
本選択肢が正解です。
本選択肢は不正解です。
プログラムを理解できているのかを問う問題で、if文の入れ子構造はよく問われる問題です。
事前に学習して、試験のときは落ち着いて取り組めば正解は十分可能です。
参考になった数7
この解説の修正を提案する
02
関数の最初に
◯整数型:calculateAmountOfPrize(整数型:improvement,//改善額(円)
整数型:period)//短縮期間(日)
整数型:prize//賞金額(円)
とありますが、これが変数の宣言となります。
関数のコード内にはif文を用いた条件分岐のための判定箇所があり、
Improvement → 改善額(20万円および5万円)
Period → 短縮期間(3日および14日)
が判定され、判定による分岐先で賞金額(prizeの値)が決定するのがポイントです。
そこを踏まえ、2つの業務改善について検証していきましょう。
【「改善額20万円、短縮期間3日」の場合の検証】
最初のif文「if(improvementが100000より小さい)」ですが、ここでは「improvement」には改善額の20万円(200000)が代入されており、小さくないので外側(インデントされていない行)の「else」に分岐します。
この「else」は「〜ではない場合は」という意味で、実際のプログラミング言語でもそうなっている場合がほとんです。
試験問題でも「else」が用いられると思いますので、ここは覚えておきましょう。
さて、elseの場合ですと「if(periodが7より小さい)」の判定に移ります。
「period」には短縮期間の3日(3)が代入されており、これは判定条件に合致するので、次行の「prize←2000」が実行されます。
つまり「改善額20万円、短縮期間3日」の場合の賞金は2000円です。
【「改善額5万円、短縮期間14日」の場合の検証】
最初のif文「if(improvementが100000より小さい)」で「improvement」の値に5万円(50000)が代入されており、条件に合致するので内側(インデントされている行)の「if(periodが7より小さい)」に分岐します。
「period」の値は14日(14)で条件に合致しないので「else」となり、「prize←1000」が実行されます。
つまり「改善額5万円、短縮期間14日」の場合の賞金は1000円です。
よって、2つの業務回線における賞金額の合計は2000+1000=3000となります。
参考になった数0
この解説の修正を提案する
03
改善額=improvement=200,000、短縮期間=period=3の時
improvement<100,000でなくelseへ入り、
period<7のため、prize=2000
になります。
改善額=improvement=50,000、短縮期間=period=14の時
improvement<100,000へ入り、
period<7でなくelseのため、prize=1000
になります。
2000+1000のため、3000が答えです。
これは不正解です。
これは不正解です。
これが正解です。
これは不正解です。
参考になった数0
この解説の修正を提案する
前の問題(問98)へ
令和7年度 問題一覧
次の問題(問100)へ