令和3年度 ITパスポート試験 公開問題 問74 解説 流れ図の処理と変数変化
流れ図Xで示す処理では、変数iの値が、1→3→7→13と変化し、流れ図Yで示す処理では、変数iの値が、1→5→13→25と変化した。図中のa, bに入れる字句の適切な組合せはどれか。
- ア.
- イ.
- ウ.
- エ. ✓ 正答
解説
この問題は、流れ図中の変数 の変化の法則性を読み解き、それを実現する数式 と制御変数 の組み合わせを導き出す問題です。
解き方:数値の差分から法則を導く
まず、与えられた数値の変化から処理の規則性を確認します。
流れ図X: 差分(増える値)は となっています。これは ずつ増える偶数を加算していることを示します。
流れ図Y: 差分は となっています。これは ずつ増える値を加算していることを示します。
流れ図Xの処理では と示されており、 は初期値 から始まり、次ステップで される(つまり と増える)形式をとります。 実際に当てはめると:
- となりませんが、今回の問題文の「 の変化」は、ループの各回で加算する値を制御しています。流れ図Xの が と増えると仮定すると、 が成立します。
流れ図Yでは、同様のロジックで差分が となるためには、加算する値が であれば、 は と変化する必要があります。したがって、 にあたる部分は の初期値が で、増分が である設定が適しています。選択肢エの (初期値2、増分2、終了値6)がこれに合致し、正解となります。
プログラムのループ処理と変数の役割
この問題で問われているのは、プログラミングにおけるループ処理(反復処理)のトレース能力です。
ループ処理では、大きく分けて2つの変数が使われます。
- 累積変数(アキュムレータ): 今回の です。計算結果を次々と格納し、値を更新していく役割です。
- 制御変数(カウンタや増分値): 今回の です。ループの回数を管理したり、計算式の中で変化する数値を提供したりします。
アルゴリズムの分野では、このように差分に注目する手法(階差数列の考え方)は非常に強力です。試験において複雑なループ処理が出題された際は、頭の中で変数に具体的な数値を代入し、数ステップ分だけ表に書き出す「トレース」を行うのが最も確実です。
アルゴリズム問題への対策
ITパスポート試験で頻出のアルゴリズム問題は、今回のように「数式」と「変数の更新ルール」を照らし合わせる形式がほとんどです。特に以下の点に注目すると正答率が上がります。
- ループの初回(開始時)と最終回の値をチェックする
- 変数が更新されるタイミング(計算の前か後か)を確認する
- 選択肢をすべて試すのではなく、変化の「幅」や「規則性」から絞り込む
これらを意識することで、複雑な処理でも落ち着いて解くことが可能です。
- 基本情報技術者試験 アルゴリズムのトレース方法(情報処理推進機構)