基本情報技術者(FE)対策

擬似言語の配列

変数を1本ずつ用意するのをやめる

前回までの章では、整数型の変数を1つずつ宣言して値を追いかけてきました。ところが、テストの点数を10人ぶん扱いたいとなると、この方法では変数を10本宣言することになります。100人なら100本です。これでは書けませんし、読めません。

そこで使うのが配列です。配列は、同じ型の入れ物をひとつづきに並べて、番号で呼び分ける仕組みです。番号のことを添字(そえじ)と呼びます。

宣言のしかた

擬似言語では、配列は次のように宣言します。

整数型の配列: data 文字列型の配列: namae

値を最初から決めておくときは、波かっこで並べて書きます。

整数型の配列: data ← {3, 1, 4}

これで、3 と 1 と 4 の3つの値を持つ配列ができました。この配列の要素数は3です。要素数は dataの要素数 と書いて取り出せます。

添字は1から始まる

ここがこの章でいちばん大事なところです。擬似言語の配列の添字は1から始まります。

data[1] /* 3 */ data[2] /* 1 */ data[3] /* 4 */

先頭の要素は data[0] ではなく data[1] です。C言語やJavaScriptを学んだ方は0から始まる約束に慣れているので、ここでほぼ必ずつまずきます。プログラミング経験がある人ほど間違えやすい、という珍しい場所です。

この決まりから、次の2つが自動的に決まります。

  • 先頭の添字は 1
  • 末尾の添字は 要素数 と同じ数

要素数3の配列なら、使える添字は 1 と 2 と 3 だけです。data[0]data[4] も存在しません。存在しない添字を書いたコードは、その時点で誤りの選択肢だと判断できます。

要素を読む、要素を書き換える

配列の要素は、ふつうの変数とまったく同じように扱えます。読むこともできますし、代入して書き換えることもできます。

整数型: x x ← data[2] + 5 /* x は 6 になります */ data[2] ← 9 /* data は {3, 9, 4} になります */

添字の部分には、変数や式も書けます。data[i]data[i + 1] という書き方は、この先ずっと出てきます。

整数型: i i ← 3 x ← data[i] /* data[3] なので 4 です */

試験ではどう問われるか

科目Bでは、配列を1つずつ見ていくコードが大量に出ます。そのとき問われるのは、ほとんどが次の2点です。

  • ループの範囲が 1 から 要素数 まで正しく回っているか
  • 添字の式が 1 つずれていないか

つまり、配列の問題を落とす原因は、配列そのものの難しさではなく添字の数え違いです。次回からは、その添字を表に書き出して1行ずつ追う練習に入ります。

生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア
編集 LuaGate編集部