擬似言語の配列と添字がわからない人へ|要素数・二次元配列の読み方を解説

公開日: 2026-07-27

擬似言語の配列で、いま何番目を見ているのか分からなくなる。

問題を解いていて、添字のところで手が止まっていませんか?

配列そのものは、実は難しい仕組みではありません。難しいのは、番号を頭の中だけで数え続けることです。

私はエンジニアとして10年以上、Webシステムの開発や運用に携わってきました。実務でも配列の位置を一つ間違えただけで、一覧の最後の一件だけが表示されない、といった不具合になります。

つまり、添字のずれはプロでも起こすものです。だからこそ、感覚ではなく手順で確認する癖をつければ、それだけで科目Bの正答率は上がります。

この記事では、添字と要素数の関係、ループの範囲がずれる理由、二次元配列の読み方までを順番に見ていきます。

擬似言語の配列とは何か

配列は、同じ種類のデータをまとめて置いておくための入れ物です。値そのものではなく、値が入った箱が横に並んでいる様子を思い浮かべてください。

そして、それぞれの箱には番号が振られています。この番号のことを添字と呼びます。

添字は何番から始まるのか

ここが最初のつまずきどころです。添字は1から始まる場合もあれば、0から始まる場合もあります。

覚えようとしなくて大丈夫です。試験では、問題文や擬似言語の記述形式の説明に、必ずどちらなのかが書かれています。

私が受験生に伝えているのは、解き始める前にその一文を指でなぞって確認する、という単純な作業です。ここを確認しないまま読み進めると、答えが一つずれたまま最後まで気づけません。

たとえば要素数が5の配列で、添字が1から始まる場合と0から始まる場合を並べると、違いがはっきりします。

内容 添字が1から始まる 添字が0から始まる
最初の要素 data[1] data[0]
2番目の要素 data[2] data[1]
最後の要素 data[5] data[4]
最後の添字 要素数と同じ 要素数 − 1

表の右下に注目してください。添字が0から始まるとき、最後の添字は要素数より1小さくなります。

この一行を見落とすことが、配列問題での失点の大半を占めます。逆に言えば、ここさえ押さえれば大きく崩れません。

要素数と添字は別のもの

要素数は箱がいくつあるかを表す数で、添字は何番目の箱かを表す数です。似ているようで、役割はまったく違います。

擬似言語では、配列の長さを data の要素数 のように書き表します。ループの終わりを決めるときに、この値をそのまま使ってよいのか、1を引くのかで結果が変わります。

擬似言語の記号や書き方そのものに不安が残っている場合は、先に全体像をつかんでおくと理解が早くなります。

【関連記事】擬似言語とは?IT初心者にもわかる意味・書き方・プログラミングとの違いをやさしく解説

擬似言語のコードで配列を追ってみる

言葉の説明だけでは、なかなか手が動くようにはなりません。実際のコードを一行ずつ追ってみましょう。

次は、配列に入っている整数をすべて足し合わせて、合計を返す手続です。

○整数型: goukei(整数型の配列: data)
  整数型: sum ← 0
  整数型: i

  for (i を 1 から data の要素数 まで 1 ずつ増やす)
    sum ← sum + data[i]
  endfor

  return sum

読むポイントは、i がどの値を取りながら進むかです。i は1から始まり、要素数と同じ値になるまで1つずつ増えていきます。

data が {4, 7, 2} だとして、変数の中身を表にしてみます。これがトレース表と呼ばれるものです。

ループの回数 i の値 data[i] 加算後の sum
開始前 0
1回目 1 4 4
2回目 2 7 11
3回目 3 2 13

答えは13です。頭の中で計算せず、こうして書き出すだけで、間違いはぐっと減ります。

トレース表を書くのは遠回りに見えるかもしれません。ですが実際には、書いた人のほうが速く正解にたどり着きます。

繰返し処理そのものの読み方に不安がある場合は、for と while の違いを整理しておくと、この表がもっと書きやすくなります。

【関連記事】擬似言語のwhileとforってどう違う?繰返し処理で迷子にならない方法を詳しく解説

添字がずれる、よくある3つの場面

配列の問題で答えを落とすとき、原因はだいたい決まっています。私がこれまで見てきた中で多いものを、順番に見ていきましょう。

場面1:ループの終わりが1つ多い、または1つ少ない

添字が0から始まる配列に対して、1から要素数までループを回してしまう。これが一番多い失敗です。

このとき最後の要素が読まれず、代わりに存在しない箱を見にいってしまいます。答えが少しだけ合わない、という嫌な外れ方をします。

反対に、添字が1から始まるのに0から回してしまう場合もあります。どちらも、開始と終了をセットで確認すれば防げます。

場面2:隣の要素と比べるときにはみ出す

並べ替えや、隣同士を比較する問題でよく起こります。data[i] と data[i + 1] を比べるとき、i が最後まで進むと i + 1 が配列の外に出てしまうからです。

だから、この種のループは要素数より1つ手前で止めます。式の中に i + 1 や i − 1 が出てきたら、ループの範囲を必ず見直してください。

場面3:添字そのものが計算式になっている

data[i × 2] や data[n − i + 1] のように、添字が式で書かれている問題もあります。ここで焦る必要はありません。

やることは同じで、i に具体的な数を入れて、添字がいくつになるかを一度書き出すだけです。式のまま考えようとすると、途端に難しく感じます。

こうしたずれは、注意力ではなく手順で防ぐものです。同じ悩みを別の角度から扱った記事もあります。

【関連記事】擬似言語でケアレスミスが多い人へ|よくある間違いと確認方法

二次元配列は表だと思えばいい

科目Bでは、二次元配列が出てくることもあります。名前だけは少し難しそうに見えますが、正体は単なる表です。

行と列があって、行番号と列番号の2つで場所を指定します。座席表を思い浮かべると分かりやすいでしょう。

擬似言語では、次のように書きます。

整数型の二次元配列: hyou ← {{1, 2, 3},
                            {4, 5, 6}}

/* hyou[1, 2] は 1行目の2列目なので 2 */
/* hyou[2, 3] は 2行目の3列目なので 6 */

大かっこの中の1つ目が行、2つ目が列です。この順番を逆に読むと、まったく違う値を拾ってしまいます。

二次元配列では、ループが二重になることがほとんどです。外側のループで行を動かし、内側のループで列を動かす、という形が基本になります。

内側のループが一周し終わってから、外側の値が1つ増えます。この動きさえつかめば、二重ループも怖くありません。

言葉だけだと分かりにくいので、二重ループの形も見ておきましょう。

整数型: gyou, retsu

for (gyou を 1 から 2 まで 1 ずつ増やす)
  for (retsu を 1 から 3 まで 1 ずつ増やす)
    hyou[gyou, retsu] を出力する
  endfor
endfor

このとき値が出てくる順番は、1行目を左から右へ、それが終わってから2行目を左から右へ、となります。行が変わるのは、内側のループが一周し終わったあとだけです。

添字の組み合わせを順番に並べると、動きがはっきりします。

出力の順番 gyou retsu 出力される値
1番目 1 1 1
2番目 1 2 2
3番目 1 3 3
4番目 2 1 4
5番目 2 2 5
6番目 2 3 6

外側の gyou がゆっくり、内側の retsu が速く動いていますね。二重ループは、この速さの違いさえつかめば読めます。

迷ったときは、実際に小さな表を紙に書いて、指で追ってください。行を先に決めて、それから列を横になぞる。この動作を体で覚えるのが近道です。

配列と添字が主役になる問題を読んでみる

配列が出てくる問題は、合計を求めるものばかりではありません。探しものをする処理でも、添字が主役になります。

次は、配列の中から目的の値を探して、見つかった位置を返す手続です。線形探索と呼ばれる、もっとも基本的な形になります。

○整数型: sagasu(整数型の配列: data, 整数型: target)
  整数型: i

  for (i を 1 から data の要素数 まで 1 ずつ増やす)
    if (data[i] = target)
      return i
    endif
  endfor

  return -1

注目してほしいのは、返しているのが値そのものではなく i だという点です。つまり、何が見つかったかではなく、何番目にあったかを答えています。

そして最後の行の -1 にも意味があります。最後まで回しても見つからなかったことを、添字としてありえない値で知らせているのです。

配列の添字が1から始まるなら、0 や -1 は絶対に出てこない番号です。だから、見つからなかったという合図に使えます。

こういう決まりごとは、実務のプログラムでもよく出てきます。私も、返ってきた値が位置なのか中身なのかを取り違えて、原因を探すのに時間を使ったことがあります。

途中で抜けるループは、最後まで回らない

この手続では、目的の値が見つかった時点で return によって処理が終わります。残りの要素は読まれません。

ここを見落とすと、ループが最後まで回った前提でトレース表を作ってしまいます。返る場所がループの中にあるかどうかは、必ず確認してください。

試験本番で使える確認の手順

科目Bは全20問を100分で解く試験です。時間に余裕があるとは言えませんが、配列の確認そのものは数秒で終わります。

私が勧めているのは、次の3つを解き始める前に済ませてしまうやり方です。

確認すること 見る場所 かかる時間
添字は何番から始まるか 問題文・記述形式の注記 数秒
配列の要素数はいくつか 初期値や問題文の説明 数秒
ループの開始と終了の値 for や while の行 十数秒

たったこれだけです。しかし、この3つを飛ばした状態で読み進めると、途中で必ず自信がなくなります。

そして、あやふやなまま選択肢を見ると、それらしい答えに引き寄せられてしまいます。先に土台を固めておくほうが、結局は速いのです。

擬似言語の記号や書き方をまとめて見直したいときは、早見表を手元に置いておくと安心できます。

【関連記事】擬似言語の記号・記述形式一覧|試験前のチェック早見表

手を動かして確かめるのが一番早い

読むだけで配列が分かるようになる人は、あまり多くありません。値がどう変わるかを目で見るのが、遠回りのようで一番の近道です。

Giji Academy の擬似言語シミュレーターでは、いま書いたようなコードを実際に動かして、変数の中身が1行ごとにどう変わるかを確かめられます。添字を1つずらすとどうなるかも、その場で試せます。

自分の手で壊してみると、なぜずれるのかが感覚として残ります。よかったら学習ページからのぞいてみてください。

間違えたときこそ記録する

添字のずれは、同じ人が同じ形で繰り返しがちです。だからこそ、間違えた形を短くメモしておくと効果があります。

要素数までループしてしまった、行と列を逆に読んだ。この程度の一行で十分です。

大事なのは、書いたメモを試験の直前に読み返すことです。自分がやりがちなずれを一度思い出してから解き始めるだけで、同じ失点はかなり減ります。

私も仕事では、過去に踏んだ不具合を短くまとめて残しています。人の記憶は思っているより頼りにならない、というのが十年やってきた実感です。

まとめ

擬似言語の配列でつまずく原因は、才能でも慣れでもありません。添字が何番から始まるか、要素数はいくつか、ループはどこで止まるか。この3点の確認を飛ばしてしまうことが、ほとんどすべてです。

そして、確認したあとはトレース表に書き出す。二次元配列なら、行と列の順番だけ間違えないようにする。

やることは驚くほど少ないと感じたのではないでしょうか。実際、配列は擬似言語の中でも仕組みがはっきりしていて、努力が点数に変わりやすい分野です。

今日から、問題を開いたらまず添字の始まりを確認してみてください。それだけで、いま何番目を見ているのか分からない、という迷いはきっと減っていきます。

擬似言語の基礎から応用まで学べる
Giji Academy

Giji Academyでは、擬似言語の基礎からアーキテクチャなどの応用的な内容まで幅広く学べます。
また、ブラウザ上で直接擬似言語コードを試すことができ、実践的なスキルを身につけることが可能です。

擬似言語の学習を始める