• 年度別
  • 分野別
  • キーワード
  • 検索
  • 成績を見る
  • 掲示板
  • サイト情報
  • ITパスポート試験
    令和5年 第64問


    問64

    関数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


    (令和5年 ITパスポート試験 第64問 テクノロジ系/アルゴリズムとプログラミング)

    解説

    (ウ)calcX ← calcX + n
    この問題の正解率:35.1%(普通)

    解説と計算イメージ
    calcX は 0 で初期化されます。

    ループ(for n = 1 to max)の各回で、次のように値が更新されます:
    n = 1: calcX = 0 + 1 = 1
    n = 2: calcX = 1 + 2 = 3
    n = 3: calcX = 3 + 3 = 6
    ...
    n = max: calcX = (1 + 2 + … + (max−1)) + max

    こうして 1 から max までのすべての整数が加算されます。

    他の選択肢は次のように間違っています。
    ア:×(掛け算)なら「階乗」になってしまう。
    イ:+1 は最大値に関係なく max 回だけ増えるので不正解。
    エ:← n は毎回上書きするだけで、最後の calcX が max になってしまう。


    【間違いやすいポイント】
    「掛け算だと何が計算されるのか?」を想像し、「総和」ではなく「階乗」になることに注意。
    ループで何を蓄積するかを常に意識し、累算や上書きの違いを正しく理解することが重要です。