ITパスポート 令和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- ア 1,000
- イ 1,500
- ウ 3,000
- エ 5,500
答えと解説
✓ これが正解ウ 3,000
解説
二重の分岐を二回たどり、二つの賞金を足し合わせて求めます。
この関数は、改善額で二つに分け、そのそれぞれの中で短縮期間によってさらに二つに分けます。境目は改善額が十万円、短縮期間が七日です。一つ目は改善額二十万円なので十万円より小さくない側に進み、短縮期間三日なので七日より小さい側に進んで、二千円です。二つ目は改善額五万円なので十万円より小さい側に進み、短縮期間十四日なので七日より小さくない側に進んで、千円です。合わせて三千円になります。設問は万円、プログラムは円で書かれているので、桁をそろえてから比べる必要があります。二十万円は二十万、五万円は五万として比べます。分岐が二重なので、どちらの枝も最後まで追う必要があります。
ほかの選択肢の解説
- ア 1,000:千円としています。二つ目の業務改善の賞金だけを答えた形です。問われているのは二つの合計なので、一つ目の二千円を足さなければなりません。片方だけを追って止まると、この値になります。
- イ 1,500:千五百円としています。どちらの分岐をたどっても出てこない数で、二つの賞金を平均したような値になっています。合計と平均を取り違えた形です。分岐で決まる値は、平均されることがありません。
- エ 5,500:五千五百円としています。最も大きい賞金である五千円を含めた組合せですが、五千円になるのは改善額も期間も大きい側に進んだときだけで、今回の二つはどちらもその条件を満たしません。
関連用語
- 擬似言語プログラムの手順を文字で書き表す方法で、流れ図と並ぶ書き表し方です。
出典:令和7年度 ITパスポート試験 問99(改変:原典の図表をテキストに書き起こした)
解説は当サイト独自のもので、IPA(独立行政法人情報処理推進機構)とは関係ありません。
関連問題
同じ分野の問題
誤りを見つけたら報告する