基本情報の擬似言語シミュレーターの使い方と練習手順
公開 更新

気になるところから読んで大丈夫。ひとつずつ、いっしょに理解していこうにゃ。
この記事の目次
基本情報技術者試験の科目Bで擬似言語の動きをつかめないときは、シミュレーターで変数の変化を一行ずつ確認すると、どこで読み違えたかを見つけやすくなります。まず自分で結果を予想し、その後に実行画面と比べる使い方がおすすめです。
ただし、シミュレーターは試験そのものではなく、対応する記法もツールごとに異なります。最後はIPAの記述形式と問題文の条件に戻り、画面を見ずに解く練習につなげましょう。
- 自分の予想と実行結果を一行ずつ比べる
- 変数表示や対応する記法でツールを選ぶ
- 実行できることと試験の仕様が同じとは限らない
- 最後は紙の上で解き、公開問題で確かめる
基本情報の擬似言語シミュレーターで何ができる?

シミュレーターは、入力したプログラムや用意された例を動かし、処理の結果を確認するための学習ツールです。変数の値を途中で表示できるものなら、代入や繰り返しで値がどう変わるかを追えます。答えだけを表示するものでも、自分の計算結果と比較する材料になります。
たとえば、最初に合計を0にしてから2を足し、次に3を足す処理を考えます。紙に「0→2→5」と予想してから画面を進め、2の次が5になったか確認します。間違えた場合は最後の答えだけでなく、どの行で予想がずれたかを探しましょう。
科目Bでは処理の流れや変数の変化を想定する力が求められます。IPAの科目Bサンプル問題でも、プログラムの読解や処理の流れの想定が出題範囲として示されています。画面上の確認は、その力を練習するための補助です。
たとえば結果だけが表示される場合、途中の計算を書き残してから、入力を一つずつ変えて実行します。途中経過が表示される場合も、見ているだけで分かったつもりにならないよう、次の値を先に口に出すかノートに書いてください。自分の間違いを見つけることが、この道具を使う目的です。
基本情報の学習に合うシミュレーターの選び方

一行ずつ進められるかを確認する
初学者は、実行中の行と変数の値を同時に見られるものを選ぶと、予想との違いを探しやすくなります。最後の結果だけでは、途中で二度間違えて偶然正解になった場合に気づけません。戻る機能があれば、間違えた直前から見直せます。
例として、infravisの擬似言語ステッパーは、サンプルの選択、トレース開始、進む・戻る操作と変数の状態表示を案内しています。条件分岐や配列の合計などのサンプルから始め、どの行で値が変わるかを確かめられます。利用前に提供元の現在の説明と利用条件を確認してください。
試したい処理に対応しているかを見る
配列を学ぶなら配列と添字、条件分岐なら比較演算、繰り返しならforやwhileが使えるかを確認します。サンプル中心の画面と、自分でコードを編集できる画面では、向く練習が異なります。対応範囲や不具合は更新される可能性があるため、公式の説明を優先しましょう。
擬似言語シミュレータのベータ版にも順次処理・反復・分岐などのサンプルがあります。提供元の説明は未完成の機能があることや、初期値のない整数型変数を自動的に0とする実装を案内しています。使える記法だけでなく、試験との違いも確認してください。
サービスによっては、自分で文章を入力したりアカウントを作成したりする機能があります。個人情報や仕事上のコードを入力する必要はありません。まずは公開されている短いサンプルを使い、保存や登録が必要かどうかを利用前に確認しましょう。試験問題そのものを外部サービスへ入力する場合も、公開元の利用条件を確認します。
シミュレーターを使う前に紙で予想する

最初にプログラム全体を読み、入力、繰り返す範囲、最後に求められる値を確認します。次に、変わる可能性のある変数をノートの列に書き、初期値を記入します。答えを当てることより、根拠を残しておくことが大切です。
例えば変数sを0から始め、1、2、3を順に足す場合、更新後のsは1、3、6です。「1回目は1、2回目は3、3回目は6」と行を分けて書いてから実行します。繰り返しの条件が3を含むかも、問題の表現に照らして先に確認しましょう。
途中の値を記録する方法は、基本情報のトレース表の書き方でも説明しています。変数が多い場合も、最初からすべてを細かく書くのではなく、問題が問う値と条件判定に関係する列から始めると整理しやすくなります。
最初の予想が難しければ、一行だけ進めた時点で停止し、次の一行を自分で考えます。初期化、代入、判定をまとめて処理しようとせず、画面の位置とノートの行を合わせるのがコツです。一度に長いプログラムを読み切るより、短い例で順序を確かめてから範囲を広げます。
一行ずつ実行して変数の変化を照合する

先ほどの例を使い、実行中の行とsの値を順番に比べます。表示が0のままなら、初期化の行を実行した直後なのか、加算まで進んだ後なのかを確認してください。ツールによって「現在の行」の表示が実行前か実行後かは異なります。
予想した値と画面が違ったら、すぐに全体を読み直すのではなく、一つ前の一致していた時点へ戻ります。次の代入の右辺にどの値が入っていたか、条件判定の結果がどちらだったかを確かめます。たとえばsが2から5になるはずの行で3になったなら、以前のsを足し忘れていないか確認します。
配列では添字と中身を別々に書きます。添字が2のとき、参照するのは2番目の値であり、添字の数字そのものを足すとは限りません。配列の開始番号や範囲はツールと問題文の両方で確認します。記法に迷う場合は、基本情報の擬似言語の読み方に戻ると、宣言や代入の意味を復習できます。
答えが合った場合も、別の入力で同じ説明ができるか試してください。たまたま結果が一致しただけなら、次の例では途中の変化が合わなくなることがあります。解けた問題の答えを記憶するのではなく、なぜその行を通るのかを自分の言葉で説明することが大切です。
条件を変えて間違えやすい境目を試す

一度正しい結果を確認したら、入力値を一つ変えて、どの分岐を通るかを予想します。例えば「xが5以上」の条件なら、xが4、5、6のそれぞれで結果を考えます。境界の5を含むかが分かれば、「5より大きい」との違いも確認できます。
繰り返しでは、開始値と終了値が同じ場合や、最初から条件を満たさない場合も試します。ただし、ツール固有の書き方が試験の問題文と違うときは、そのまま暗記しないでください。予想と異なる結果が出たら、自分の読み違いに加え、入力ミス、未対応の構文、ツール側の仕様も切り分けます。
特に初期値に注意が必要です。IPAの記述形式では値が格納されていない変数を未定義として扱いますが、前述のベータ版のように自動で値を入れる実装もあります。実行できたことだけを根拠に、試験の問題でも同じ初期値があると決めつけないようにしましょう。
操作が面白くて何度も実行するだけになったときは、最初の予想を先に書いたか振り返ります。結果が違っても、間違えた行を特定できれば復習の手がかりになります。原因が条件の読み違いなら境界値を、代入の読み違いなら右辺の計算順を中心に練習し直しましょう。
基本情報の科目Bでは紙の演習につなげる

試験では、シミュレーターの表示を頼りに解く練習だけでは足りません。画面で理解した処理を隠し、同じ例を紙の上で再現します。次に数値や条件が少し違う問題を解き、答えだけでなく変数の変化を説明できるか確かめます。
IPAの公開問題やサンプル問題は、選択肢と問題文を含めて読み、何を問われているかを最初に整理しましょう。科目Bには情報セキュリティも含まれるため、擬似言語だけで学習を終わらせず、別途問題文を読む練習も必要です。学習全体の進め方は基本情報の科目B対策を参考にしてください。
例として15分の練習なら、最初の5分で短い処理を予想し、次の5分でステップ実行して照合し、残りの5分で条件を変えた例を紙だけで解いてみます。時間配分は一例です。慣れないうちは問題数を増やすより、間違えた行を説明する時間を確保しましょう。
初見の問題では、コードに入る前に求められる出力や空欄を確認し、必要な変数に印を付けます。すべての値を同じ詳しさで記録する必要はありません。選択肢を判断するのに必要な範囲まで追う練習へ、少しずつ移していきます。
シミュレーターは、答えを表示する道具ではなく、自分の予想と処理のずれを見つける練習に役立ちます。短い例で予想し、一行ずつ照合し、条件を変えてから紙だけで解き直す。この順番を繰り返し、最後はIPAの記述と各問題の条件に沿って判断しましょう。
