令和5年度 ITパスポート試験 問64
テクノロジアルゴリズム擬似言語・プログラム読解
関数 sigma は,正の整数を引数 max で受け取り,1 から max までの整数の総和を戻り値とする。プログラム中の a に入れる字句として,適切なものはどれか。

図の説明テキスト
〔プログラム〕
〇整数型: sigma(整数型: max)
整数型: calcX ← 0
整数型: n
for (n を 1 から max まで 1 ずつ増やす)
a
endfor
return calcX
解答・解説
正解: ウ. calcX ← calcX + n
関数 sigma は、引数 max を受け取り、1 から max までの整数の総和を計算して返すプログラムです。
プログラムの動きを確認します。
- 総和を格納するための変数
calcXを宣言し、初期値として0を代入します。 for文を用いて、変数nを1からmaxまで 1 ずつ増やしながらループ処理を行います。- 1から
maxまでの総和を求めるには、ループ内で毎回変化するnの値をcalcXに次々と足し合わせていく必要があります。 - したがって、空欄 a には現在の
calcXの値にnを足してcalcX自身を更新する処理であるcalcX ← calcX + nが入ります。
各選択肢の解説
- ア
calcX ← calcX × n: この処理ではcalcXにnを掛け続けることになります。また、calcXの初期値が0であるため、結果は常に0となってしまいます。 - イ
calcX ← calcX + 1: この処理ではループごとに1を加算することになり、最終的なcalcXの値はループの実行回数(つまりmax)になってしまいます。 - ウ
calcX ← calcX + n: 正解です。nの値(1, 2, ..., max)を順番にcalcXに加算することで、総和を求めることができます。 - エ
calcX ← n: この処理ではループごとにcalcXをnの値で上書きしてしまうため、最終的なcalcXの値は最後に代入されたmaxの値になってしまいます。