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 end if return prize

この設問が問うていること

ネスト(入れ子)構造を持つ条件分岐プログラムの処理結果をトレースする計算設問です。

1,000
選択肢の解説: 2つのケースの賞金額を正しく計算できていないため不適切です。
1,500
選択肢の解説: 改善額5万円・短縮14日の計算(1,000円)と、改善額20万円・短縮3日の計算(誤って500円などとした場合)の誤った合計であるため不適切です。
3,000正解
選択肢の解説: それぞれの賞金額(2,000円と1,000円)を正しく算出し、その合計(3,000円)と一致するため適切です。
5,500
選択肢の解説: 誤った分岐ルートを通って加算した数値であるため不適切です。

総合解説

2つのケースについて、プログラムの条件分岐に当てはめて賞金額を算出します。1.【改善額20万円(200,000円)、短縮期間3日の場合】`improvement`が100,000円以上のため、外側の`else`に入ります。`period`(3日)が7未満のため、内側の`if`に入り、`prize`は2,000円になります。2.【改善額5万円(50,000円)、短縮期間14日の場合】`improvement`が100,000円未満のため、外側の`if`に入ります。`period`(14日)が7以上のため、内側の`else`に入り、`prize`は1,000円になります。2つの賞金額の合計は「2,000円 + 1,000円 = 3,000円」となり、正解は選択肢cです。

執筆・監修: 運営者 KH更新日: 2026-07-05出典: IPA公式PDF(過去問題・解答例)
AIAIにその場で質問(デモ応答)

こんな聞き方もできます(タップで質問)

令和7年度を本番同様のCBT形式で解いてみよう

無料登録なしでも一部体験可能。登録すれば採点・弱点分析・AI教科書まで使えます。

令和7年度の過去問CBTを解く