過去問解きまくり研究所 ホーム

令和4年度 問96

アルゴリズムとプログラミング

変数に関する問題

関数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 ずつ増やす
答えと解説を見る

✓ これが正解エnum + 2 × i i を 2 から 6 まで 2 ずつ増やす

解説

増える分が2ずつ大きくなるので、numに2かけるiを足します。

まず一つ目の関数の動きから、空欄の式を決めます。変数numは1から3、7、13と変わっており、増えた分は順に2、4、6です。繰返しの回数を数える変数iは1、2、3と進むので、増えた分はちょうど2かけるiにあたります。したがって空欄の式は、numに2かけるiを足すものです。次に二つ目の関数を見ると、numは1から5、13、25と変わり、増えた分は4、8、12です。同じ式を使うのですから、iが2、4、6と進めばつじつまが合います。つまり繰返しは、iを2から6まで2ずつ増やす形になります。引数として渡した値がどう変わるかを一段ずつ書き出し、表の欄を上から順に当てはめて確かめるのが近道です。よって適切な組合せは、numに2かけるiを足す式と、2から6まで2ずつ増やす繰返しです。

ほかの選択肢はなぜ違うのか

出典:令和4年度 ITパスポート試験 問96(改変:原典の図表をテキストに書き起こした)

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)