基本情報技術者(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行ずつ追う練習に入ります。