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

【答え】エ
【解説】
プログラム1の正解を探す(calcX(1) :1→3→7→13)
まず、プログラム1の処理から空欄aに入る式を探します。
選択肢アとイ(2 × num + i)
| iの値 | 2 × num + i |
|---|---|
| 初期値 | num = 1 |
| i=1 | num = 2 × 1 + 1 = 3 |
| i=2 | num = 2 × 3 + 2 = 8 |
| i=3 | num = 2 × 8 + 3 = 19 |
❌ numの値が1→3→8→19となるため、これは不適切
選択肢ウとエ(num + 2 × i )
| iの値 | num + 2 × i |
|---|---|
| 初期値 | num = 1 |
| i=1 | num = 1 + 2 × 1 = 3 |
| i=2 | num = 3 + 2 × 2 = 7 |
| i=3 | num = 7 + 2 × 3 = 13 |
⭕ numの値が1→3→7→13となるため、これが適切
プログラム2 の正解を探す(calcY(1) :1→5→13→25)
選択肢はウ.かエ.に絞れたため、この2つを比較します。
選択肢ウ(iを1から7まで3ずつ増やす:i = 1, 4, 7)
| iの値 | num + 2 × i |
|---|---|
| 初期値 | num = 1 |
| i=1 | num = 1 + 2 × 1 = 3 |
| i=4 | num = 3 + 2 × 4 = 11 |
| i=7 | num = 11 + 2 × 7 = 25 |
❌ numの値が1→3→11→25となるため、これは不適切
選択肢エ(iを2から6まで2ずつ増やす:i = 2, 4, 6)
| iの値 | num + 2 × i |
|---|---|
| 初期値 | num = 1 |
| i=2 | num = 1 + 2 × 2 = 5 |
| i=4 | num = 5 + 2 × 4 = 13 |
| i=6 | num = 13 + 2 × 6 = 25 |
⭕ numの値が1→5→13→25となるため、これが適切
以上より、正解はエ.となります。
※アルゴリズムが苦手な人は、あまり時間をかけずに他の問題へ移りましょう。

