分類テクノロジ系 » アルゴリズムとプログラミング » アルゴリズムとプログラミング新しい試験範囲外(2027年度からの新しい試験には出ない分野)年度令和4年度の100問の一覧
関数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 だと、calcX は 1→3→8 となり、2回目で 7 になりません。
イ× b は合っていますが、a が 2×num+i だと calcX の2回目が 2×3+2=8 になり、7 と合いません。
ウ× a は合っていますが、i が 1、4、7 と動くと calcY は 1→3→11→25 となり、途中の値が 5、13 と合いません。
エ○ 正解 a=num+2×i で calcX は 1→3→7→13、i を 2、4、6 と動かすと calcY は 1→5→13→25 となり、どちらも問題文と一致します。
解説
2つの関数は、空欄 a に同じ式が入り、繰返しの i の動き方だけが違います。先に、i が 1、2、3 と分かっている calcX で a を決め、その a を使って calcY の b を決めます。
calcX で num は 1→3→7→13 と、2、4、6 ずつ増えています。i が 1、2、3 なので、増えた量はちょうど 2×i です。calcY では 1→5→13→25 と、4、8、12 ずつ増えています。同じ式なら 2×i が 4、8、12、つまり i は 2、4、6 です。a は num+2×i、b は「i を 2 から 6 まで 2 ずつ増やす」です。
calcX(i=1、2、3)a=num+2×i のとき i=1:1+2×1=3 i=2:3+2×2=7 i=3:7+2×3=13 calcX a=2×num+i のとき i=1:2×1+1=3 i=2:2×3+2=8(7 にならない) calcY(i=2、4、6)a=num+2×i のとき i=2:1+2×2=5 i=4:5+2×4=13 i=6:13+2×6=25 calcY(i=1、4、7)のとき i=1:1+2×1=3(5 にならない)
教科書 g37この問題の知識
アルゴリズムは問題を解くための手順で、順次・選択・繰返しの3つで組み立てます。流れ図と擬似言語の読み方、変数の値を書き出すトレース、空欄の埋め方、線形探索と2分探索、選択ソート・バブルソート・クイックソートと併合までを、公開問題を解ける形でまとめます。
Udemy の ITパスポート講座を、受講者数・★評価・口コミで比べたページです(広告を含みます)。
過去問教科書の一覧(現行の試験の順)教科書の一覧(新しい試験の順)
出典:IPA「ITパスポート試験 公開問題」令和4年度 問96。問題文と選択肢は改変せずに引用しています(表・図は文字に書き起こしたもの)。正解は IPA 公表の解答例によります。

