【プログラミング教育の小ネタ】配列に詳しくなくても「配列が0から始まる」理由が説明できる
今回の話は少々高学年向けのネタになります。前提としては、プログラミングもしくはデータの構造をなんとなく理解(データや配列といった用語として理解できていなくとも、雰囲気つかんでいる)程度の知識が必要です。
ですが、覚えておくと授業内での面白さが引き立つ可能性もあるので今回は取り上げてみたいと思います。
そもそもとしての配列とは
このお話を進める前に、そもそもとして「配列」とはどんな存在なのかをおさらいしておきましょう。配列を簡単に言えば、「データをまとめて格納しておく箱」のイメージです。
身近な例で考えると「引き出しの付いた棚」のように、まとめて複数のものをしまうものが配列です。
コンピュータ(もしくはプログラム)の世界では、「データを保持する」という考え方があり、「データをひとつ保持する」か、「データを複数保持する」かの違いで呼び方が異なるといったイメージで、配列の場合は複数保持する方に該当します。
コンピュータの世界ではなぜ配列が必要なのか?
コンピュータは「何かしらの補助」なしでは処理しているデータを覚えることができないわすれん帽な存在です。頭の回転は早いのに、すぐに自分は何をしてたんだっけ?となってしまいます。これらの問題を解決するために、「データを覚えることを補助」してくれる機能が準備されています。
この補助機能のことを「メモリ」と呼びます。配列は、このメモリにデータを読み書きすることで、データを忘れることなく処理を進めることができるのです。
少々遠回りな説明になっていますが、イメージとしては以上となります。
なぜ配列は0から始まるのか
それでは、前提となる配列とその仕組をなんとなくおさらいしたところで、本題となる「配列は0」から始まるというお話に進みたいと思います。
ざっくりと結論を述べると、以下のような理由からコンピュータの世界では配列は0から始まると言われています。
- 配列はメモリの場所をではなく、データをしまった範囲で数える
- 配列ではスタート地点のことを0という
- 配列の数え方は「スタート地点」、「スタート地点の1つとなり」、「スタート地点から2つとなり」となる
- 配列の数え方は「数」ではなく「距離」
これらの理由を先ほどの例えで説明した「引き出しの付いた棚」で改めてイメージしてみましょう。
例えば、洋服好きのあなたは、この棚に洋服をしまうことを決めました。そして、5段ある引き出しの、1段目には靴下やインナー、2段目にはズボン、残りはすべて大好きなTシャツをしまうことにしました。
まず、配列の考え方は、これらの洋服の種類毎にグループにします。今回は大好きなTシャツを対象に解説を進めます。Tシャツは棚の3段を使っています。この3段を配列として扱います。つぎのようなイメージとなります。
このような決まりごとから、配列は0から始まるという仕組みになっているのです。