ITパスポート 過去問
令和7年度
問99 (テクノロジ系 問44)

このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。

問題

ITパスポート試験 令和7年度 問99(テクノロジ系 問44) (訂正依頼・報告はこちら)

関数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
  • 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になります。

選択肢1. 1000

本選択肢は不正解です。

選択肢2. 1500

本選択肢は不正解です。

選択肢3. 3000

本選択肢が正解です。

選択肢4. 5500

本選択肢は不正解です。

まとめ

プログラムを理解できているのかを問う問題で、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万円、短縮期間日」の場合の賞金は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が答えです。

選択肢1. 1000

これは不正解です。

選択肢2. 1500

これは不正解です。

選択肢3. 3000

これが正解です。

選択肢4. 5500

これは不正解です。

参考になった数0