令和5年度 ITパスポート 問64(テクノロジ)
出典:令和5年度 ITパスポート試験 公開問題 問64(独立行政法人情報処理推進機構(IPA))
関数sigmaは,正の整数を引数maxで受け取り,1からmaxまでの整数の総和を戻り値とする。プログラム中のaに入れる字句として,適切なものはどれか。
〔プログラム〕
○整数型: sigma(整数型: max)
整数型: calcX ← 0
整数型: n
for (n を 1 から max まで 1 ずつ増やす)
[ a ]
endfor
return calcX
- アcalcX ← calcX × n
- イcalcX ← calcX + 1
- ウcalcX ← calcX + n
- エcalcX ← n
正解と解説を見る
正解:ウ
【プログラムの動き】
関数sigmaは、1からmaxまでの整数の合計を求めます。calcXを0から始め、nを1からmaxまで1ずつ増やしながら、calcXにnを足していけば、最後にcalcXが合計になります。そのため、空欄aには calcX ← calcX + n が入ります。
【max = 3 で確かめる】
・n = 1:calcX = 0 + 1 = 1
・n = 2:calcX = 1 + 2 = 3
・n = 3:calcX = 3 + 3 = 6
1 + 2 + 3 = 6 と一致します。
【選択肢の検討】
ア:calcX ← calcX × n では、calcXが0から始まるので、何を掛けても0のままです。
イ:calcX ← calcX + 1 では、1を繰返しの回数だけ足すので、結果はmaxと同じ値になります。
エ:calcX ← n では、毎回nで上書きされるので、結果は最後の値のmaxになります。
よって、正解は選択肢ウです。