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

アルゴリズムとプログラミング|令和4年度 ITパスポート試験 問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 ずつ増やす

解説

増える分が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(改変:原典の図表をテキストに書き起こした)

この問題を演習で解く

同じ単元をまとめて解くならアルゴリズムとプログラミングへ。

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