for文の繰返しで変数numの変化を追い、aとbを特定する問題

正解は エ です。 手順1:a を決める(calcX で確かめる) calcX では i が 1, 2, 3 と変わり、num は 1→3→7→13 と変化します。増えた量は 2, 4, 6 で、ちょうど 2×i です。 a の候補 i=1 i=2 i=3 判定 2 × num + i 2×1+1=3 2×3+2=8 − ×(7にならない) num + 2 × i 1+2=3 3+4=7 7+6=13 ○ よって a は num + 2 × i です(ア・イは除外)。 手順2:b を決める(calcY で確かめる) calcY では num が 1→5→13→25 と変化し、増えた量は 4, 8, 12 です。a=num+2×i なので、2×i=4, 8, 12 となる i は 2, 4, 6 です。 b の候補 i がとる値 num の変化 判定 i を 1 から 7 まで 3 ずつ増やす 1, 4, 7 1→3→11→25 × i を 2 から 6 まで 2 ずつ増やす 2, 4, 6 1→5→13→25 ○ ウの「1 から 7 まで 3 ずつ」では途中の値が 3, 11 となり、1→5→13→25 になりません。したがって組合せは エ です。

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

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

a

b

ア

2 × num + i

i を 1 から 7 まで 3 ずつ増やす

イ

2 × num + i

i を 2 から 6 まで 2 ずつ増やす

ウ

num + 2 × i

i を 1 から 7 まで 3 ずつ増やす

エ

num + 2 × i

i を 2 から 6 まで 2 ずつ増やす