平成22年度 秋期 ITパスポート試験 問69 解説 アルゴリズムの実行結果
二つの変数 x と y に対して, 次の手続を (1) から順に実行する。処理が終了したとき, x の値は幾らになるか。 〔手続〕 (1) x に 2 を代入し, y に 3 を代入する。 (2) y の値から 1 を引いたものを y に代入する。 (3) x の値と y の値を加えたものを x に代入する。 (4) y ≠ 1 なら手続 (2) に戻り, y = 1 なら処理を終了する。
- ア 4
- イ 5 ✓ 正答
- ウ 7
- エ 8
解説
この問題は、プログラムの処理を最初から順番に追いかけていく「トレース(追跡)」という手法で解きます。手続に書かれた手順をメモ用紙に書き出し、変数の値がどのように変化するかを一つずつ記録していくのが確実です。
変数の値の変化を記録する
手続をステップごとに実行し、変数 x と y の値を更新していきます。
初期状態 (1) x = 2, y = 3
1回目のループ (2) y から 1 を引く:y = 3 - 1 = 2 (3) x と y を足す:x = 2 + 2 = 4 (4) y = 2 なので「y ≠ 1」を満たし、(2)に戻る
2回目のループ (2) y から 1 を引く:y = 2 - 1 = 1 (3) x と y を足す:x = 4 + 1 = 5 (4) y = 1 なので「y = 1」となり、処理終了
最終的に x の値は 5 となります。
アルゴリズムと変数の役割
この問題は、プログラミングにおける「変数」と「繰り返し処理」の基礎を問うています。
変数は、値を一時的に保管しておくための「箱」のようなものです。プログラムは、この箱の中身を入れ替えながら計算を進めていきます。また、今回は手順の中に「戻る」という指示があり、これをプログラミング用語でループ(反復)と呼びます。
条件分岐(if文など)と組み合わせることで、特定の条件を満たすまで同じ処理を何度も繰り返すことができます。今回の問題は、yという変数をカウントダウンの役割(カウンタ変数)として使い、yが1になった瞬間にループを止めるという、プログラミングで非常によく使われるパターンです。
業務における論理的思考の重要性
このような「処理の手順を順に追う」スキルは、ITの現場において非常に重要です。システムが予期せぬ挙動をした際、エンジニアはソースコードを先頭から一行ずつ追いかけ、どこでデータが想定と異なる値に変わってしまったのかを特定する「デバッグ」という作業を行います。
また、複雑な業務フローを設計する際も、この問題のように「どのタイミングで変数が更新され、どの条件で処理が分岐するか」を整理することで、ミスを防ぐことができます。ITパスポート試験で問われるこの種の問題は、単なるパズルではなく、コンピュータがどのように考えて動いているのかという論理構造を理解しているかを確かめるための重要な指標です。