算数のXは嫌いだったけどプログラムの場合はそうでもなかった話




プロクラスの森です。

プログラムの作業風景で思い浮かぶのは、画面に向かってキーボードを叩いている姿ではないでしょうか。画面にはたくさんのアルファベットと数字が並んでいて、=やxもあって、なんとなく算数みたいな感じがします。算数とプログラムはやっぱり似ているのでしょうか?

「=(は)」が好きじゃなかった小学生時代

=(は)。この記号を初めて見たのは小学生の頃。

「1 +(たす) 1  =(は) 2」

小学校1年生、算数の時間は度々プリントが配られ、そこにはいつも10か20個くらいは問題がありました。足し算、引き算、繰り上がり、たくさんの問題を解きました。=(は)の数は課せられたノルマの数であり、そこに=(は)があれば、その右側を埋めなければなりませんでした。

小学生の私は、最初こう考えました。
計算によって「 1 + 1」や「3 + 6 + 1」はずっとずっと素晴らしい「2」や「10」に生まれ変わる。 自分は = の右側に、新しい何かを生み出している。そう信じることで計算をこなしていた私に、先生がこの記号の正しい読み方と意味を教えてくれました。

「イコール」とは「右辺」と「左辺」が「同じ」という事。右側に書いた数字は、左側の数字と同じ。「1 + 1」と「2」は同じ。

必死に右辺に書き込んでいたものは、新しい何かではなくて、左辺に書かれていたものと同じだったのです。3 + 6 + 1個のリンゴも、10個のリンゴも、食べられる量は同じなのです。 それを知ってからというもの、=(イコール)の並んだプリントの終わりまでの道のりは、果てしなく遠くなりました。

ましてや「x(エックス)」など敵でしかなかった

それからしばらくすると、埋めなければならないものがもうひとつできました。 x(変数)です。 x が隠している部分の数字を当てなければならなくなったのです。 算数嫌いな自分にとってx(変数)も=(イコール)もその程度の意味しかなく、それ以外には屁の突っ張り程度の役にも立たないものでしかなかったのです。

プログラムの場合はそうでもなかった

なのでプログラムを考えている人も、やっぱり算数のように = の右側の正解を悩んでいるのだとずっと思っていたのですが…
少し違いました。

プログラムではx(変数)は好きな値を書き込む為にあります。 = を使って好きなものを入れて良いのです。

x = 5

右に置いたものが、左の x に入る。 img2

xは5になります。

応用編

こうするとどうなるでしょうか。

x = 5

x = x + x

img2

1行目でxは5になります。 2行目ではそのxとxを足したものがxになります。 xは10になったのです。

さらに応用編

こうするとどうなるでしょうか。

x = 5

x = x + x

x = x + x

x = x + x

x = x + x

img3

これを繰り返すと数がいつのまにか10000000000000000000000000000とかになっていそうで、なんだかやってはいけないことをしているような気がします。

初めてこれを見たとき、どうしていいかよく分かりませんでした。一見、算数によく似ているけど、何か違う。

けれど算数の授業で習った=やxよりも、こちらの=やxの方が、数がどんどん変わっていって、面白いとも思いました。

「ひょっとしたら、プログラムを考えている人が悩んでいるとき、画面の向こうではリンゴが箱に収まりきらないくらい増えすぎたりしているのかもしれない」そんな風にも思いました。