繰返しのトレース|1周を1行に書く【基本情報技術者試験 科目B】

基本情報技術者試験

現行FE シラバス Ver9.2 準拠擬似言語の記述形式は2022年から変更なし最終更新 2026-10-17

前回で、1行実行するごとに表を1行足す書き方を身につけました。今回は繰返しです。ここでつまずく人がいちばん多いところですが、足すものは1つだけ増えます。

期間限定クーポンPR|Udemy の講座科目B オリジナル模試 3回分・60問42%OFF 1,500円2,600円中身を見る ›

この回の内容を動画で見る

講義「トレース表の書き方」(全7分26秒)のうち、この記事の内容は 3分08秒ごろから始まります(再生するとそこから流れます)。

同じ行を、何度も実行する

endfor まで来ると、for の行に戻ります。だから goukei ← goukei + i の行は、4回実行されます。

ここが最初の分かれ道です。同じ行を2回目に実行しても、表の同じ行を書き直すのではありません。

表は書き直さない

A1-1 と同じです。前に書いた行は消しません。同じ行を2回目に実行したときも、書き直さずに下へ書き足します。

1周を1行にまとめる

とはいえ、1行実行するごとに1行書いていくと、4周で8行になります。10周する問題なら20行です。手が追いつきません。

そこで、繰返しのときは書く単位を変えます。

繰返しのトレース表

1周につき1行。その周が終わったときの値だけを書く。

いちばん左の列は「実行した行」ではなく「周」になります。

1周を1行にまとめる

整数型: goukei ← 0 / for (i を 1 から 4 まで 1 ずつ増やす) / goukei ← goukei + i

周が終わったときの値だけを書く

周 i goukei
はじめ ー 0
1周 1 1
2周 2 3
3周 3 6
4周 4 10
抜けたあと 5 10

くり返しの中を何行実行しても、書くのは周のおわりの1行だけ

行数は、プログラムの行数ではなく周の数

表の行数は、プログラムの行数とは関係ありません。決まるのは周の数です。ここが、繰返しのないプログラムといちばん違うところです。

はじめの1行を忘れない

for に入る前の値も、1行目に書いておきます。上の表なら goukei が 0 の行です。

この行が無いと、1周目の計算が何から始まったのかが分からなくなります。

途中の値は、前の周から読む

繰返しの中の goukei ← goukei + i は、右側を先に計算してから左へ書き込むのでした(G2-3)。

その右側の goukei は、1つ上の行の値です。

2周目でやっていること

読む1周目の行にある goukei は 1、いまの i は 2

計算1 + 2 = 3

書く2周目の行の goukei に 3

1つ上の行を見る。これだけです。表を作っておけば、頭の中に前の値を置いておく必要がありません。

抜けるのは、範囲を超えたとき

4周目が終わったあと、もう一度 for の行に戻ります。i を1つ増やすと 5。「1 から 4 まで」を超えました。

抜けるのは、範囲を超えたとき

for (i を 1 から 4 まで 1 ずつ増やす)

4周まわったあと、何が起きるか

時点 i どうなるか
4周のあと 4 for の行に戻って、i を1つ増やす
増やすと 5 「1 から 4 まで」を超えた
だから 5 5周目は実行せずに抜けて、endfor の下の行へ進む

抜けたあとに使われるのは goukei。その値を、表の最後の行に書いておく

i を1つ増やしてみて、範囲を超えていたら抜ける

だから繰返しを抜けて、endfor の下の行へ進みます。

抜けたあとの値も書く

表の最後に「抜けたあと」の行を1つ足しておきます。問われるのは、たいてい抜けたあとの値だからです。

上の例なら goukei は 10。これが出力されます。

抜けたあとの i(ここでは 5)も表には書いておきますが、抜けたあとの i の値そのものを問う問題は、まず出ません。問われるのは goukei のほうです。

実際に、1周ずつ動かしてみる

下のプログラムを、ボタンで1行ずつ進めてください。1周が終わるたびに、表が下へ1行増えるのが見えます。

繰返しがあるプログラムを追う

当サイトオリジナルの例題


ループ開始前

いま計算していること

まだ計算していません

変数の状態

トレース表(進めると1行ずつ積み上がります)

つまずきポイントまとめ

まちがえ方 正しい書き方
同じ行に戻ったので、表も同じ行を書き直す 表は書き直さない。前の行は残して、下へ書き足す
繰返しの中でも、1行実行するごとに1行書く 繰返しでは1周を1行にまとめる
for に入る前の値を書かない はじめの1行が無いと、何から始まったか分からない
右側の goukei を、いまの行から読む 右側の goukei は1つ上の行の値。i はいまの周の値
最後の周で終わりだと思う もう一度 for に戻り、範囲を超えて抜ける。その行も書く

次に読む

A1-3 配列のトレース ─ その周に読んだ値を書く
A1-1 トレース表の書き方 ─ 1行実行したら1行足す
G6-1 繰返し for ─ 何回まわるかの数え方
目次 基本情報技術者試験 科目B 攻略ガイド

科目Bが難しいと感じたら、この順番で

読み方の基礎を固めてから、本番と同じ形の問題で試す。

1

まず、読み方の基礎

科目B 基礎講義

プログラムを1行ずつたどって、値の変わり方を見る。定番アルゴリズムの型をそろえる。

0円通常 2,600円先着100名・12月3日まで

講座の中身を見る ›

講義の目次と無料の1本を見てから、Udemy で0円で受講できます

2

次に、本番と同じ形で力試し

オリジナル模試 3回分

初見の問題を、本番と同じ時間で通して解く。

1,500円定価 2,600円

模試の中身を見る ›

この記事で引用した資料

いずれも独立行政法人情報処理推進機構(IPA)が公表したものです。IPAは公表済みの試験問題について、教育目的での使用に許諾および使用料を不要としていますが、著作権は放棄していません。本記事では、引用した箇所の文言を改変していません(省略や補いがある場合は、その場に明記しています)。

本文の例題は当サイトのオリジナルです。

タイトルとURLをコピーしました