ITパスポート ラボ

学習の画面へ

令和4年度 問96

関数の繰返し処理の穴埋め

出典: 令和4年度 ITパスポート試験 公開問題 問96 (IPA)

関数 calcX と関数 calcY は,引数 inData を用いて計算を行い,その結果を戻り値とする。関数 calcX を calcX(1) として呼び出すと,関数 calcX の変数 num の値が,1→3→7→13 と変化し,戻り値は 13 となった。関数 calcY を calcY(1) として呼び出すと,関数 calcY の変数 num の値が,1→5→13→25 と変化し,戻り値は 25 となった。プログラム中の a,b に入れる字句の適切な組合せはどれか。

〔プログラム 1〕

○整数型: calcX(整数型: inData)
  整数型: num, i
  num ← inData
  for (i を 1 から 3 まで 1 ずつ増やす)
    num ← [ a ]
  endfor
  return num

〔プログラム 2〕

○整数型: calcY(整数型: inData)
  整数型: num, i
  num ← inData
  for ( [ b ] )
    num ← [ a ]
  endfor
  return num
ab
ア2 × num + ii を 1 から 7 まで 3 ずつ増やす
イ2 × num + ii を 2 から 6 まで 2 ずつ増やす
ウnum + 2 × ii を 1 から 7 まで 3 ずつ増やす
エnum + 2 × ii を 2 から 6 まで 2 ずつ増やす
  1. ア a: 2 × num + i,b: i を 1 から 7 まで 3 ずつ増やす
  2. イ a: 2 × num + i,b: i を 2 から 6 まで 2 ずつ増やす
  3. ウ a: num + 2 × i,b: i を 1 から 7 まで 3 ずつ増やす
  4. エ a: num + 2 × i,b: i を 2 から 6 まで 2 ずつ増やす
正解と解説を見る

正解: エ

ポイント

a の式(calcX で調べる): i が 1, 2, 3 のとき、num は 1 → 3 → 7 → 13 です。

よって a は num + 2 × i です。

b の範囲(calcY で調べる): num は 1 → 5 → 13 → 25 で、差は 4、8、12 = 2 × i なので、i は 2、4、6 です。
よって b は i を 2 から 6 まで 2 ずつ増やすです。

広告

「アルゴリズムとプログラミング」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)

広告