関数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- アa: 2 × num + i, b: i を 1 から 7 まで 3 ずつ増やす
- イa: 2 × num + i, b: i を 2 から 6 まで 2 ずつ増やす
- ウa: num + 2 × i, b: i を 1 から 7 まで 3 ずつ増やす
- エa: num + 2 × i, b: i を 2 から 6 まで 2 ずつ増やす
正解と解説を見る
正解
エ a: num + 2 × i, b: i を 2 から 6 まで 2 ずつ増やす
calcXの変化(1→3→7→13)は差が2,4,6と増えていくため,num←num+2×i(aの式)で説明できる。calcYの変化(1→5→13→25)は差が4,8,12であり,同じ式num+2×iを使うにはiが2,4,6と2ずつ増える必要があるため,bは「iを2から6まで2ずつ増やす」となる。よってエの組合せが正しい。