電卓とゾルディック家への入口
始まりましたね。増刊号。
記念すべき第1回は「電卓」ということに。
ところで、電卓を作ったことはありますか。
そうです。この一言である種の人たちは大方の予想がつくはず。
その人たちとは情報系専門学校に通ってプログラマになるために授業を受けた人のことです。(勝手な想像ですが)
実は僕もその一人であります。
今日は「電卓」というテーマを聞いて考えた中で一番印象深い「電卓を作る」という話をかるーくしたいと思います。
電卓って結構身近な存在だと思うのです。一般的な形状や機能概要について広く認知を得られている電子機器の一つだと思います。
そんな電卓を専門学校の頃に、ある日の授業で課題の一環として「作りましょう」となったのでした。
使用した言語はVisual Basic(VB)。
これは当時の僕たちにとって、画面に文字だけを出力するプログラミング(CUI)の演習が多かった中で、ウィンドウを作ってボタンやテキストボックスを配置して動かすことの出来るプログラミング(GUI)が出来る楽しい言語でした。
アプリケーションを作ってる雰囲気がとても出ていたからですね。
そしてその中身ですが、なるべく細かい話は控えるように気をつけますが・・・・・・、
【電卓作りの基本的なこと】
①まずは電卓の見た目を作る
いわゆる電卓を想像して下さい。画面にあたるところに空っぽのテキストボックスを置いたり、テンキーと四則演算のボタンを置いたりする作業です。ここでは機能のことは考えずに形を似せるだけなので、そんなに頭は使いません。
例えば、実際の電卓を見ながら電卓を真似するので、お弁当箱におかずを詰めるような感じです。
②配置したボタンの画面出力設定、画面制御をする
ボタンを配置したら、すぐに四則演算の機能を加えたいところですが、これは多少話がややこしくなったとしても、敢えて書いておきたい「プログラミングにおける考え方を持つ上での大切な工程」になります。
ボタンの画面出力設定とは、「1」という数字の書いてあるボタンを押した時、画面に「1」という文字(数字)が表示されるようにするといった、ボタンを押したときに画面に意図した動きをするかの確認です。
電卓って、計算をするだけでなく、数字を入力したらその数字が表示されるっていう「当たり前になっているけど忘れている機能」が実はあります。
別に当たり前でいいんです。前提となりすぎていて、電卓を使うときにわざわざ思い出す必要はないんです。
ただしこの感覚は、プログラマとしては改めなくてはなりません。
「1」を押したら画面は「1」、次に「2」を押したら画面は「12」となりますが、これは計算しているわけではなく、1という文字の後ろに2を連結させたもの。
それでも、立派な文字(数字)表示機能を果たしていると考えられます。付け加えるとすれば、「1」を連打したとき、テキストボックスからはみ出るほど入力出来ないようにするのも、画面表示機能の制御のうちになります。
こういった風に、僕はプログラムを修学してシステムの成り立ちにおいて考えることが予想より多かったことに気づくようになりました。
身近な電卓だからこそ、プログラムを組んでいくということについて身の回りの物の見え方が変わるきっかけになった印象的な課題の一つでした。
ちなみに学生がよくやるプログラミング時のコピペミスは、数字ボタンの動きを雑にコピペして作っていたせいで「1」を押しても「9」を押しても画面には「1」しか表示されないという素敵な魔法に遭遇します。
実際に失敗してみると、その電卓の予想だにしない動きに笑ってしまう、そんなあるあるだと思います。
話が逸れましたが、電卓がここまで出来たところで、次の課題、その次の課題と進んでいくのです。
【まだまだあった - 電卓の機能】
③四則演算(加減乗除)機能の追加
④メモリー機能の追加(M+ や M- など)
⑤パーセンテージ表記、平方根の算出(開平法)機能の追加
上記のように、「③が出来たら④もやってみよう」とより高度な電卓を作れるかを、試行錯誤していました。
今思い出すと、この電卓づくりはプログラム修学者にとっては登竜門的な存在で、ハンターxハンター初期の頃にキルアの家(ゾルディック家)に入るための「試しの門」みたいだなぁと、勝手に連想してました。
ゼブロさんが、「ぼっちゃんはここまで開けてましたよ」的な事言ってましたよね。
まさにそんな感じで、クラスの優秀な人は、「電卓機能⑤の扉」も開け放っていたわけでした。
今の僕は、既にプログラマーの仕事を離れてしまいましたが、「電卓」と聞くと真っ先に浮かぶ、良い思い出です。