久しぶりに発掘したプログラマブル関数電卓 SHARP EL-5120。これにはBASICライクなプログラムが組める機能が搭載されており、当時プログラミングしたプログラムがそのまま残っていました。たぶん、94年〜95年頃にかけて作ったプログラムですね。何のこと無い、教科書そのままのプログラムです。
GCM : REAL INPUT A INPUT B T=A*B LABEL G M=A-INT (A/B)*B IF M=0GOTO E A=B B=M GOTO G LABEL E PRINT "GCM PRINT B WAIT PRINT "LCM B=T/B PRINT B
GCM(最大公約数)とLCM(最小公倍数)を求めるためのプログラムです。ユークリッドの互除法ですね。懐かしい。続いては、割ったあまりを求めるだけのプログラム。
MOD : REAL INPUT A INPUT B M=A-INT (A/B) * B PRINT M
シンプルですね。とはいえ、以外と役に立った記憶があります。次は
CRAMEL : REAL PRINT"AX+BY=P PRINT"CX+DY=Q WAIT 1 INPUT A INPUT B INPUT P INPUT C INPUT D INPUT Q Z=AD-BC X=(PD-BQ)/Z Y=(AQ-CP)/Z PRINT X WAIT PRINT Y
これもクラメルの公式通りですね。2元1次方程式の解の公式。次が残っていた最後のプログラムです。素因数分解をするやつですね。
SOINSU : REAL INPUT A C=2 M=√A LABEL K D=A/C IF D=INT DGOTO W C=C+1 IF C>MGOTO F GOTO K LABEL W PRINT C A=A/C IF A=1GOTO E PRINT "HIT KEY WAIT GOTO K LABEL E END LABEL F PRINT A
ちなみに、IF A=1GOTOのようにA=1とGOTOの間にスペースが空かないことに違和感があるかもしれませんが、どうもEL-5120の仕様です。変数は1文字の物しか使えなかったはずです。この電卓を買った当時まだパソコンは所持しておらず、プログラムを組む、ということはとても高貴なことで、制約の多かったEL-5120 BASICでのプログラミングもとても楽しい時間でした。同時期に持っていた、CASIOの関数電卓はぜんぜんグラフィカルではないプログラマブル関数電卓で、しかもメモリも30ステップ分しか無く、途中でうち間違えたらやり直し、というシビアなプログラミング環境でしたが、それでも夢中でプログラムしていたのを思い出します。高校一年の頃です。z80のマイコンボードでハンドアセンブルしたプログラムを16進キーボードで入れてたのは高校三年の頃。今は、その当時と比べれば雲泥の差の環境を持ちながら、うまく使いこなせていないのが少し残念です。がんばらないと!とりあえずコンピュータの数学でも買ってきて久しぶりに勉強しようかな。



