プログラムにある命令を理解し、変数の値の変化を、順を追って計算する問題です。
プログラムの大まかな流れを確認し、次に、具体的な値を求めましょう。
落ち着いて、順を追って取り組むことがポイントです。
問題(令和7年 問99)
関数calculateAmountOfPrize は、業務改善の効果における改善額と短縮期聞を、それぞれimprovement とperiodで受け取り、賞金額を戻り値とする。改善額が20万円で短縮期間が3日の業務改善と、改善額が5万円で短縮期聞が14日の業務改善があった。この二つの賞金額の合計は何円か。ここで、改善額と短縮期間の値はそれぞれ0以上とする。

解き方(令和7年 問99)
問題の概略をつかむ
はじめに、問題の概略をつかみましょう。

「業務改善」は、業務における、時間やコストを削減することです。
「改善額」は、削減できたコストの額を意味します。
「短縮期間」は、削減できた業務にかかる時間を意味します。
「業務改善の効果」は、「改善額」と「短縮期間」で決まります。

「業務改善の効果」に応じて、担当者に「賞金」が出ます。

「賞金額」は、「関数calculateAmountOfPrize」 に、「改善額」と「短縮期間」を入力すると求まります。

求めるものは、賞金額の合計です。
早合点しないように注意しましょう。
関数 calculateAmountOfPrize のイメージをつかむ
関数は、複数の処理を一つにまとめたものです。
自動販売機と対比すると、関数 calculateAmountOfPrize をイメージしやすいでしょう。

関数 calculateAmountOfPrize の構成、流れをチェック
プログラムの大まかな流れを確認しましょう。
プログラムは、次のような構成と流れになっています。
注)下の区分けは、擬似言語問題を解説するために、独自に付けたものです。

関数名 | 関数の名称が書かれています。 「〇」が目印です。 |
引数 | 関数に入力する値(変数)です。 関数名の横 ( )が目印です。 プログラムの変数名と問題文にある用語との関係がチェックポイントです。 improvement:改善額 period:短縮期間 |
準備 | 変数の型や最初の値が書かれています。 「△△型:変数名」が目印です。 |
処理 | データをどのように操作するか書かれています。 「if~endif」が目印です。 |
戻り値 | 結果をどのように出すか書かれています。 「return 変数名」が目印です。 変数名がチェックポイントです。 prize:賞金額 |
「選択処理」部分をチェック

改善額(improvement)による選択処理です。
改善額(improvement)が10万円(100000)より小さいとき→処理Aを実行します。
改善額(improvement)が10万円(100000)より小さくないとき→処理Bを実行します。
処理A、処理Bの中身(青い背景の部分)の詳細は、次に確認します。
「処理A」部分をチェック

「処理A」の部分は、短縮期間による選択処理です。
短縮期間(period)が7日より小さいとき→賞金額(prize)は500円
短縮期間(period)が7日より小さくないとき→賞金額(prize)は1,000円
「処理B」部分をチェック

「処理B」の部分も、短縮期間による選択処理です。ただし、処理Aと賞金額が違います。
短縮期間(period)が7日より小さいとき→賞金額(prize)は2,000円
短縮期間(period)が7日より小さくないとき→賞金額(prize)は5,000円
プログラムに従って、結果を求める
業務改善(改善額:20万円、短縮期間:3日)の賞金額

- 改善額20万円は10万円より小さくないから、処理Bを実行する。
- 短縮期間3日は7日より小さいから、賞金額は2,000円
業務改善(改善額:5万円、短縮期聞:14日)の賞金額

- 改善額5万円は10万円より小さいから、処理Aを実行する。
- 短縮期間14日は7日より小さくないから、賞金額は1,000円
コメント