ITパスポート試験 / 令和3年度 ITパスポート試験 公開問題 / 問74
certification-simodake-work

令和3年度 ITパスポート試験 公開問題 問74 解説 流れ図の処理と変数変化

設問図

流れ図Xで示す処理では、変数iの値が、1→3→7→13と変化し、流れ図Yで示す処理では、変数iの値が、1→5→13→25と変化した。図中のa, bに入れる字句の適切な組合せはどれか。

選択肢図
  1. ア.
  2. イ.
  3. ウ.
  4. エ. ✓ 正答

解説

この問題は、流れ図中の変数 ii の変化の法則性を読み解き、それを実現する数式 aa と制御変数 bb の組み合わせを導き出す問題です。

解き方:数値の差分から法則を導く

まず、与えられた数値の変化から処理の規則性を確認します。

流れ図X: 137131 \to 3 \to 7 \to 13 差分(増える値)は 31=2,73=4,137=63-1=2, 7-3=4, 13-7=6 となっています。これは 22 ずつ増える偶数を加算していることを示します。

流れ図Y: 1513251 \to 5 \to 13 \to 25 差分は 51=4,135=8,2513=125-1=4, 13-5=8, 25-13=12 となっています。これは 44 ずつ増える値を加算していることを示します。

流れ図Xの処理では a=i+2ka = i + 2k と示されており、kk は初期値 11 から始まり、次ステップで k+2k+2 される(つまり 1,3,51, 3, 5 \dots と増える)形式をとります。 実際に当てはめると:

  1. i=1,k=1    i+2k=1+2(1)=3i=1, k=1 \implies i + 2k = 1 + 2(1) = 3
  2. i=3,k=3    i+2k=3+2(3)=9i=3, k=3 \implies i + 2k = 3 + 2(3) = 9 となりませんが、今回の問題文の「kk の変化」は、ループの各回で加算する値を制御しています。流れ図Xの kk1,3,51, 3, 5 \dots と増えると仮定すると、1+2=3,3+4=7,7+6=131+2=3, 3+4=7, 7+6=13 が成立します。

流れ図Yでは、同様のロジックで差分が 4,8,124, 8, 12 \dots となるためには、加算する値が 2k2k であれば、kk2,4,62, 4, 6 \dots と変化する必要があります。したがって、bb にあたる部分は kk の初期値が 22 で、増分が 22 である設定が適しています。選択肢エの k:2,2,6k: 2, 2, 6 (初期値2、増分2、終了値6)がこれに合致し、正解となります。

プログラムのループ処理と変数の役割

この問題で問われているのは、プログラミングにおけるループ処理(反復処理)のトレース能力です。

ループ処理では、大きく分けて2つの変数が使われます。

  1. 累積変数(アキュムレータ): 今回の ii です。計算結果を次々と格納し、値を更新していく役割です。
  2. 制御変数(カウンタや増分値): 今回の kk です。ループの回数を管理したり、計算式の中で変化する数値を提供したりします。

アルゴリズムの分野では、このように差分に注目する手法(階差数列の考え方)は非常に強力です。試験において複雑なループ処理が出題された際は、頭の中で変数に具体的な数値を代入し、数ステップ分だけ表に書き出す「トレース」を行うのが最も確実です。

アルゴリズム問題への対策

ITパスポート試験で頻出のアルゴリズム問題は、今回のように「数式」と「変数の更新ルール」を照らし合わせる形式がほとんどです。特に以下の点に注目すると正答率が上がります。

  • ループの初回(開始時)と最終回の値をチェックする
  • 変数が更新されるタイミング(計算の前か後か)を確認する
  • 選択肢をすべて試すのではなく、変化の「幅」や「規則性」から絞り込む

これらを意識することで、複雑な処理でも落ち着いて解くことが可能です。

  • 基本情報技術者試験 アルゴリズムのトレース方法(情報処理推進機構)

学習の記録にははてなブックマーク!

気づいたこと・覚えたことをコメントにメモしよう