令和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 までの整数の総和を計算して返すプログラムです。

プログラムの動きを確認します。

  1. 総和を格納するための変数 calcX を宣言し、初期値として 0 を代入します。
  2. for 文を用いて、変数 n を 1 から max まで 1 ずつ増やしながらループ処理を行います。
  3. 1から max までの総和を求めるには、ループ内で毎回変化する n の値を calcX に次々と足し合わせていく必要があります。
  4. したがって、空欄 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 の値になってしまいます。

Spineチーム