基本情報のトレース表の書き方|科目Bで迷わない手順とコツ

基本情報のトレース表の書き方を学ぶ学習机

基本情報技術者試験の科目Bで、擬似言語の問題を読んでいるうちに変数の値が分からなくなることはありませんか。最初は理解できていたはずなのに、ループが2回、3回と進むだけで、どの値を見ればよいのか迷いやすいですよね。

そんなときに役立つのがトレース表です。頭の中だけで追うのではなく、変数・条件・戻り値を表にして残すことで、科目Bの長い問題でも落ち着いて選択肢を絞れます。

この記事では、基本情報のトレース表の書き方を、列の作り方、行を増やすタイミング、配列やループの追い方、表が崩れたときの直し方まで実践寄りに整理します。すでに擬似言語の読み方を少し学んだ人が、次に手を動かして得点につなげるための記事です。

この記事のポイント
  • 基本情報のトレース表で最初に作る列がわかる
  • ループや条件分岐で行を増やすタイミングがわかる
  • 配列・添字・戻り値を見落とさないコツがわかる
  • 科目B本番を意識した練習順と時間配分がわかる
無料

基本情報技術者試験 過去問アプリ

本番形式で繰り返し解ける。スキマ時間に1問から

2,000問以上収録
無料で過去問を解く
目次

基本情報のトレース表の作り方

基本情報のトレース表の列と行を作るノート

トレース表が必要な理由

基本情報の科目Bでは、擬似言語で書かれた処理を読み、変数の値や条件分岐の流れを追って答えを選びます。ここで難しいのは、文法そのものよりも「今どの値になっているか」を正確に保ち続けることです。1行目では分かっていても、ループが進むたびに値が上書きされ、配列の添字も変わり、最終的に何を答えればよいのか見失いやすくなります。

トレース表は、その混乱を防ぐためのメモです。プログラムの実行順に合わせて、変数の値、条件式の結果、出力や戻り値を表に残します。つまり、頭の中の作業メモを紙に外出しするイメージですね。暗算で全部処理しようとすると、途中の値を忘れた瞬間に最初から読み直すことになりますが、表があれば直前の状態に戻れます。

特に科目Bは100分で20問を解くため、1問に使える時間は平均5分ほどです。IPAの公開資料でも、科目Bはアルゴリズムとプログラミング分野から16問、情報セキュリティ分野から4問が出題される形式と案内されています。だからこそ、考える時間を増やすより、値を迷わず追える型を作る方が実戦的です。

トレース表はきれいな表を作るためではなく、途中の値を忘れずに答えへたどり着くための道具です。

すでに擬似言語の記法に不安がある場合は、先に基本情報の擬似言語対策|読み方とトレース手順で代入、条件分岐、繰り返しの読み方を確認しておくと、この記事の内容が入りやすくなります。

もう一つの利点は、復習しやすいことです。答え合わせで「なぜ間違えたか」を探すとき、表が残っていれば、最初の値を読み間違えたのか、条件分岐を逆にしたのか、ループの終了を1回多く見たのかを切り分けられます。科目Bは同じような処理が形を変えて出るので、ミスの種類を言葉にして残せる人ほど伸びやすいです。

最初に見るべき情報

トレース表を作る前に、いきなり1行目から表を書き始めるのはおすすめしません。最初に見るべきなのは、問題が何を聞いているか、入力値は何か、出力・戻り値・空欄のどれを答える問題なのかです。ここを確認せずに全変数を追うと、必要のない列まで作ってしまい、表が大きくなりすぎます。

たとえば「戻り値として正しいものを選べ」と聞かれているなら、最終的にreturnされる変数が最重要です。「空欄に入る処理を選べ」なら、空欄の直前と直後でどの値が必要かを見ます。「表示される値を選べ」なら、表示処理に到達した時点の値を追えばよいですね。目的を決めるだけで、表に残す情報がかなり絞れます。

最初に見るもの確認すること表への影響
設問文戻り値・出力・空欄のどれか追うべきゴールを決める
入力値配列・文字列・引数の初期値最初の行に書く値を決める
選択肢候補の差がどこにあるか細かく追う場所を絞る

選択肢を見るのも大事です。選択肢が「3、4、5、6」のように数値だけなら、最終値を追う問題です。選択肢が条件式や代入文なら、どの場面でその処理が必要になるかを逆算できます。選択肢を先に見てもズルではありません。科目Bは限られた時間で正答を選ぶ試験なので、答えに必要な情報から逆算する方が現実的です。

表を書く前に、設問文の「何を答えるか」に丸を付けるつもりで読むと、追う範囲を絞りやすくなります。

入力例が複数ある場合は、いちばん短いものから追うのもコツです。長い配列や文字列から始めると表が大きくなり、処理の型が見えにくくなります。短い入力で1回だけ流れを確認し、そのあと本問で指定された入力を追うと、どの列が必要か判断しやすくなります。

列に書く変数の選び方

トレース表の列は、プログラムに出てくるものを何でも並べればよいわけではありません。基本は、値が変わる変数、条件判定に使う変数、答えに直結する変数を列にします。宣言されているだけで一度も変わらないものや、途中で意味が薄い一時変数まで全部書くと、表が横に広がって見づらくなります。

最初の列には、行番号や処理内容を書ける小さな欄を作ると便利です。次に、ループカウンタ、合計値、判定用のフラグ、配列の添字、戻り値候補の順で並べます。順番は絶対ではありませんが、プログラムの実行に沿って左から右へ変化を見る形にすると、読み返したときに流れを追いやすいです。

  • 行番号や処理名を書く列を左端に置く
  • ループカウンタや添字は早めの列に置く
  • 合計値や最大値など答えに近い変数を置く
  • 条件判定の結果が必要なら真偽の列も作る

初心者がよく迷うのは、配列をどう書くかです。配列全体を毎回書くと大変なので、設問に関係する添字だけを書く方法がおすすめです。たとえば配列aのi番目だけを見ているなら、「i」「a[i]」「合計」のように列を作ります。配列全体が並べ替わるソート問題では、各回の配列状態を簡略化して書きますが、最初から全要素を細かく書こうとすると時間が足りません。

また、変数名が長い場合は自分だけが分かる短い記号にしても構いません。countをc、totalをt、indexをiのように略すだけでも、表を書く速度は上がります。ただし、似た変数を同じように略すと逆に混乱します。sumとsub、leftとrightのような組み合わせは、略しすぎず区別できる形で残しましょう。

列数は、少なすぎても多すぎても扱いにくくなります。迷ったときは「この列がないと次の値を説明できないか」で判断してください。次の値を計算する根拠になる変数は残し、最終的な答えに関係しない一時的な値は処理内容の欄に小さく書く程度で十分です。

行を増やすタイミング

トレース表で一番悩みやすいのが、いつ新しい行を増やすかです。基本は「値が変わったとき」に新しい行を作ります。代入文が実行された、ループカウンタが増えた、関数の戻り値が決まった、配列の中身が更新された。このようなタイミングで行を増やすと、後から見たときに変化の理由が分かります。

一方で、条件を確認しただけで値が変わらない場合は、毎回すべての変数を書き直す必要はありません。条件式の真偽が答えに影響するなら「条件」列に○や×を付ける、影響しないなら処理内容の欄に小さくメモする程度で十分です。すべてを丁寧に書きすぎると、表のために時間を使いすぎてしまいます。

行を増やす目安

代入、配列更新、カウンタ更新、戻り値確定、出力処理の直前は新しい行に残すと、あとで見直しやすくなります。

たとえば「iを1増やす」という処理は小さく見えますが、ループではとても重要です。iの更新を省略すると、次の回でa[i]がどの要素を指しているのか分からなくなります。合計値や最大値だけを追っているつもりでも、添字の変化を見落とすと選択肢を一つずらして選ぶミスが起きます。

表が縦に長くなりすぎる場合は、全ループを同じ密度で書かなくても大丈夫です。最初の1回目と2回目は丁寧に書き、処理の型が分かったら、同じ処理をまとめて追う方法もあります。ただし、本番で慣れないうちから省略しすぎるのは危険です。練習段階では少し細かめに書き、慣れてから省略する部分を決めるのがいいですね。

練習では、同じ問題を2回解いて行の増やし方を比べると効果的です。1回目は細かく書き、2回目は答えに必要な行だけ残します。この差分を見ると、本番で省略してよい処理と、省略すると危ない処理が分かります。自分なりの省略ルールを作ることが、速く解く近道です。

条件分岐とループの追い方

条件分岐では、どの処理が実行されたかを表に残すことが大切です。if、elseif、elseが並んでいるときは、上から順に条件を見て、最初に真になった処理だけが実行されます。複数の条件がありそうに見えても、最初の条件で処理が決まれば、後ろの条件は評価されないことがあります。ここを見落とすと、実行されない処理まで表に書いてしまいます。

ループでは、開始前、各回の処理後、終了条件が偽になった瞬間を意識します。whileは条件を見てから処理に入るので、最初から条件が偽なら一度も実行されません。do whileは処理を実行してから条件を見るため、少なくとも一度は実行されます。forはカウンタの初期値、更新、終了条件をセットで追う必要があります。

処理見るポイント表に残すこと
if条件が真か偽か実行された分岐
while処理前に条件を見る条件が偽になった回
for初期値・更新・終了条件カウンタと対象要素
returnどの値を返すか戻り値の直前状態

ループを追うときは、「今が何回目か」を表の左端に書くと安定します。1回目、2回目、3回目と書くだけでも、カウンタの値と処理回数を混同しにくくなります。iが0から始まる問題では、処理回数とiの値がずれることが多いので、ここは特に注意したいところです。

条件分岐では「条件を読んだこと」と「処理が実行されたこと」を分けて考えます。読んだだけの処理まで値を変えないようにしましょう。

条件式の真偽は、式をそのまま眺めるより、左辺と右辺の値をいったん表に出すと判断しやすくなります。たとえばiが3で、条件がi < 3なら偽です。この一手間を省くと、頭の中で「まだ続きそう」と感じて余計に1回ループさせるミスが起きます。

基本情報のトレース表で解く練習法

科目Bの擬似言語問題をトレース表で解く練習

科目Bで使う解答手順

科目Bでトレース表を使うときは、毎回同じ手順で解くことを意識します。問題ごとに読み方を変えると、本番で迷いやすくなります。おすすめは、設問のゴール確認、入力値の確認、列の作成、1回目の処理を丁寧に追う、選択肢と照合する、という流れです。この順番を固定するだけで、問題文が長くても手が止まりにくくなります。

最初から最後まで完璧な表を作ろうとしないことも大切です。設問が最終的な戻り値だけを聞いているなら、戻り値に関係する変数を中心に追えば十分です。空欄補充なら、空欄の前後で成立しているべき状態を見る方が早いです。トレース表は、全部を書くためのものではなく、答えに必要な根拠を残すためのものだと考えると使いやすくなります。

STEP
設問のゴールを決める

戻り値、出力、空欄、条件判定のどれを答えるのかを先に確認します。

STEP
必要な列だけ作る

変化する変数、添字、答えに近い変数を中心に列を作ります。

STEP
1回目を丁寧に追う

最初のループで処理の型をつかみ、2回目以降に同じ型を当てはめます。

公式の出題形式を確認しながら練習したい場合は、IPAが公開している基本情報技術者試験 科目Bサンプル問題を一度見ておくとよいです。問題冊子の雰囲気を知るだけでも、普段の練習でどこまで表を書くべきか判断しやすくなります。

アルゴリズム全体の勉強順まで整理したい方は、基本情報のアルゴリズム対策|科目Bの解き方もあわせて読むと、トレース練習をどの位置づけで進めるかが見えやすくなります。

毎回同じ手順を使う理由は、迷ったときに戻る場所を作るためです。難しい問題に当たると、焦ってコード全体を何度も読み直したくなります。しかし、ゴール、入力、列、1回目の処理という順番を固定しておけば、どこまで確認したかが見えます。これだけでも本番の精神的な負担はかなり下がります。

配列と添字のミス対策

基本情報のトレース表でミスが出やすいのは、配列と添字です。配列の問題では、値そのものだけでなく「どの場所を見ているか」が答えに直結します。a[i]とa[i+1]を読み間違える、iが0から始まるのに1番目として扱う、更新後のiで配列を見てしまう。このような小さなズレが、最終的な選択肢のズレにつながります。

対策としては、添字を独立した列にすることです。配列aの中身を全部書くより、まずi、a[i]、処理後の値を分けて書きます。iが変わった瞬間に行を増やし、次にどの要素を見ているのかを確認します。添字の列がないと、合計値や判定結果だけが合っているように見えても、実は別の要素を見ていたということが起こりやすいです。

ミス原因対策
1つずれる添字の開始位置を見落とすiの初期値を表の最初に書く
前の値で計算する更新順を逆に読む代入の直後に行を増やす
配列全体で迷う不要な要素まで見る設問に関係する添字に絞る

ソートや探索の問題では、配列全体の状態を追う必要が出ることもあります。その場合も、毎行すべてを書き直すより、交換が起きた行、比較した要素、最大値や最小値が変わった行を中心に残します。練習では丁寧に書いて構いませんが、本番では「どこが答えに影響するか」を意識して省略できる場所を判断しましょう。

配列問題では、値より先に添字を見る癖をつけるとミスが減ります。どの箱を見ているのかを確認してから、中身の値を計算しましょう。

配列の開始位置は、問題文や擬似言語の注記に従って確認します。練習中に毎回「添字はどこから始まるか」を表の上に小さく書く癖をつけると、1つずれるミスを減らせます。特に文字列処理や探索問題では、最初と最後の要素を見落とさないことが重要です。

表が崩れたときの直し方

トレース表を書いている途中で、列が足りない、行を増やしすぎた、途中の値が合わないと感じることがあります。これは失敗ではありません。むしろ、頭の中だけで追っていたら気づけなかったズレが見えるようになった状態です。大事なのは、全部消して最初からやり直す前に、どこで崩れたかを切り分けることです。

トレース表のミスを見直して修正する様子

まず、最後に値が変わった行に戻ります。多くの場合、ズレは代入文、添字の更新、条件分岐の判定、ループ終了条件のどこかで起きています。特に「代入の右辺を計算してから左辺に入れる」という順番を飛ばすと、前の値と新しい値が混ざります。表の中で値が急に不自然になった場所があれば、その直前の処理を見直しましょう。

  • 列が足りないまま暗算で補う
  • 条件が偽なのに処理を実行する
  • 更新後の添字で前の配列要素を見る
  • 表が汚くなっただけで最初から全部消す

列が足りない場合は、右側に追加して構いません。最初から完璧な列を作る必要はありません。むしろ、練習では「どの列を追加すれば解けたか」を振り返ることで、次の問題で必要な列を予測しやすくなります。本番では時間が限られるので、追加した列にだけ印を付けて、以後の行で追うようにすれば十分です。

表が崩れたら、消す前に「代入」「条件」「添字」「ループ終了」のどれでズレたかを探すと、復習の質が上がります。

間違えた行には、消しゴムで全部消すより、横に小さく正しい値を書き直す方が復習に役立ちます。どの値をどう勘違いしたかが残るからです。練習ノートでは見た目のきれいさより、ミスの跡を残すことを優先しましょう。本番用のメモでは読みやすさが必要ですが、練習では失敗の記録が次の得点になります。あとで同じ問題を解き直すときも、以前のズレを確認できます。

時間配分と復習のコツ

トレース表は便利ですが、時間をかけすぎると本番では逆効果になります。科目Bは100分で20問なので、単純計算では1問あたり5分です。もちろん、すべての問題を同じ時間で解く必要はありませんが、1問に10分以上かける問題が増えると全体が苦しくなります。練習段階から、表を書く時間も含めて測っておくことが大切です。

最初の練習では時間を気にしすぎなくて大丈夫です。まずは正確に追うことを優先します。次に、同じ問題をもう一度解き、どの列を省略できたか、どの行をまとめられたかを確認します。最後に、初見問題を5分から7分程度で解く練習をします。この順番にすると、雑に急ぐのではなく、必要な情報だけを速く書く力がつきます。

段階目的目安
初回練習正確に値を追う時間を気にしすぎない
解き直し省略できる列を探す初回より短くする
本番練習選択肢まで絞る5〜7分を目安にする

復習では、正解・不正解だけを見ないようにしましょう。正解していても、表の作り方が遠回りなら本番で時間が足りなくなるかもしれません。不正解でも、途中までは合っていたなら、どの行からズレたのかを確認すれば次に活かせます。点数よりも、再現できる解き方になっているかを見るのが重要です。

演習量を増やすなら、基本情報の過去問アプリで無料演習しながら、間違えた問題だけ手書きでトレースし直す方法も使いやすいです。全部の問題で表を書くのではなく、迷った問題や配列・ループが絡む問題を優先すると続けやすいですね。

タイマーを使うときは、最初から5分で切る必要はありません。まずは10分、次に7分、最後に5分前後というように段階を下げます。急に短時間へ寄せると、表を書かずに勘で選ぶ癖がつきやすいです。正確さを保ったまま少しずつ速くする方が、本番で再現しやすいですね。

基本情報のトレース表まとめ

基本情報のトレース表は、科目Bの擬似言語問題を安定して解くための実用的なメモです。きれいな表を作ることが目的ではなく、変数、添字、条件、戻り値の変化を見失わないことが目的です。最初に設問のゴールを確認し、必要な列だけを作り、値が変わったタイミングで行を増やす。この基本を守るだけでも、頭の中だけで追うよりかなり解きやすくなります。

特に意識したいのは、配列とループです。添字がどこを指しているか、条件が真か偽か、代入の前後で値がどう変わったかを表に残しましょう。表が崩れたときは、全部やり直す前に、代入、条件、添字、ループ終了のどこでズレたかを見ます。この切り分けができるようになると、復習の効率も上がります。

トレース表の要点

設問のゴールを決める、必要な変数だけ列にする、値が変わったら行を増やす、添字と条件を別に追う。この4つを固定すると、科目Bの問題で迷いにくくなります。

次にやることはシンプルです。まずは短い擬似言語の問題を1問選び、時間を気にせず丁寧にトレース表を書いてみてください。そのあと同じ問題をもう一度解き、どの列を省略できるかを見直します。慣れてきたら、初見問題を5分前後で解く練習に進みましょう。科目B対策全体の流れを確認したい方は、基本情報の科目B対策|勉強順と合格ラインも参考になります。

最初の一週間は、短い問題だけで構いません。毎日1問でも、表にして値を追う練習を続けると、条件分岐やループの読み方が少しずつ安定します。解けなかった問題を増やすより、1問を丁寧に追って、どの列が必要だったかを確認する方が、基本情報の科目Bでは力になりやすいです。迷った問題ほど、表を残して復習しましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次