fx-201Pでのプログラミング (2)

前回はfx-201Pでのプログラミングの基本を書いてみましたが、今回はジャンプ、サブルーチン、条件判断について書きたいと思います。

fx-201Pにおけるジャンプ命令は、[GOTO]を用い、ジャンプ先のラベルを指定するのに[ST#]を用います。ラベルは0~9の数値を利用可能です。また、[GOTO]のジャンプ先のラベルが[SUB#]になっている場合にはサブルーチン呼出として処理されます。それぞれの書式は下記の通りです。
 [GOTO] ラベル [:]
 [ST#] ラベル [:]
 [SUB#] ラベル [:]

なお、サブルーチンから戻る命令は用意されておらず、プログラムの最後に達したら戻るようになっています。実際には下記のような書き方をすると、GOTO 1:, GOTO 2:, GOTO 3:はサブルーチン呼出として処理されると思われます。ちなみにサブルーチンのネスティングはできません。

    ……
 <メインルーチン>
    ……
 GOTO 9:
SUB# 1:
    ……
    ……
 GOTO 9:
SUB# 2:
    ……
    ……
 GOTO 9:
SUB# 3:
    ……
    ……
ST #9:
 <プログラム末尾>

ジャンプ命令には[GOTO]のほかに[MJ]という命令があります。これは「マニュアルジャンプ」というもので、この命令を書いておくと、入力待ち([ENT])や結果表示([ANS])中に[MJ]キーを押すことによりその位置にジャンプすることができるというものです。[ST#]~[GOTO]のループで入力と計算を繰り返し、[MJ]キーを押すと最終結果が表示される、というような用途に利用できます。なお、この[MJ]コマンドについては後ろの[:]は不要です。

次は条件判断です。条件判断には[IF]命令を使用しますが、書式は以下のとおりとなります。
 [IF] x [=] y [:] l1 [:] l2 [:] l3 [:]
xとyには0~9のメモリ番号、I, IMのいずれか、またはKに続く定数を指定できます。l1, l2, l3はラベルを示し、この場合の動作としてはx<yならl1, x=yならl2, x>yならl3にそれぞれジャンプするということになります。

fx-201Pのプログラム命令は以上ですべてになります。最低限のものは揃ってはいますが、かなり貧弱なのはお分かりいただけるかと思います。簡単なことをするのにもステップ数が多くなってしまいがちで、127ステップの容量はすぐに使いきってしまいそうですね。最後にこれまで利用してきたベンチマーク(1~1000までの和、sin(1)~sin(100)までの和)のプログラムを作ってみることにします。まずはこちら、1~1000までの和を計算するプログラムです。

0 = K1000 :
1 = K0 :
ST# 0 :
1 = 1 + 0 :
0 = 0 - K1 :
IF 0 = K0 : 1 : 1 : 0 :
ST# 1 :
ANS 1 :

結果は7分1秒で、これまで計測可能であった電卓の中では最も遅い結果でした。自分のPC-1212では未検証ですが、up-cさんのところで最も遅い部類のPC-1210/1211よりも遅いということになります。
ベンチマーク(1)

次に、sin(1)~sin(100)までの和も計算してみました。これまでの機種はRADモードを利用してきたのですが、この機種ではsin(100)がエラーになってしまうためDEGモードを利用しました。プログラムは下記の通りとなります。

0 = K100 :
1 = K0 :
ST# 0 :
1 = 1 + 0 sin :
0 = 0 - K1 :
IF 0 = K0 :1 : 1 : 0 :
ST# 1 :
ANS 1 :

結果は3分8秒でした。これも計測可能な機種の中では最も遅い結果でした。そういえば古いプログラム関数電卓ということだとPC-1200が未計測でしたので、また近々やってみたいと思います。最後はループを用いずにsin(1)を10回計算して加算するプログラムです。(最初このプログラムがどうしても動作せず、なぜかと思ったら定数を表す"K"がすべて抜けていました…汗)

0 = K1 sin + K1 sin + K1 sin + K1 sin + K1 sin + K1 sin + K1 sin + K1 sin + K1 sin + K1 sin :
ANS 0 :

結果は15.9秒で、なんとPC-1001より遅い!! このままではウチの電卓の中では最も遅い電卓ということになってしまいそうです。ちなみにfx-201Pは階乗計算機能はついていないので、そちらで比較することはできませんでした。最後にtan(355/226)の精度も計算してみました。
ベンチマーク(2)

結果は上の通りで、fx-140fx-2500などに比べると良好な結果で、HP-15CHP-41Cに近い精度でした(正しい結果は-7497258.1853255… です)。

以上で、合計3回にわたってfx-201Pについて紹介してきましたが、かなりクセがあるプログラム関数電卓であるということはお分かりいただけたかと思います。同時期のプログラム関数電卓であるPC-1200(1977年発売)、HP-41C(1979年発売)と比べるとかなり使いにくいと思いました。やはりCASIOのプログラム関数電卓で他のメーカーと渡り合えるものは、1978年のFX-501P/502P発売まで待たなければいけなかったようです(このfx-201Pは1976年発売です)。そのFX-501P/502Pが打って変わってかなり魅力的な機種に仕上がったのは皆様ご存知の通りですが…。
関連記事
スポンサーサイト



テーマ : 電化製品
ジャンル : ライフ

tag : プログラム関数電卓CASIOfx-201P

コメント

非公開コメント

fx201p

学生時代から社会人まで30年以上常用電卓としてfx201pを愛用しました。
プログラム機能にも散々お世話になりました。
ちょっと見には珍妙かもしれませんか、本質的には超簡易Basicで使いやすい言語です。
ニュートン法やルンゲクッタなど十分実用になり、答が出るまでの待ち時間も逆に楽しみでした。

Re: fx201p

おっしゃる通り、確かにBASICの命令の並びと似てはいますね。私は最初触ったのがキーストローク式のFX-601Pだったのでかなり違和感を感じましたが、BASICに似ていると考えるとさほど難しくはないのかもしれませんね。
アクセスカウンタ
カレンダー
11 | 2023/12 | 01
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 - - - - - -
最新記事
最新コメント
リンク
カテゴリ
楽天お勧め商品
検索フォーム
Kyoroのつぶやき
FC2掲示板
ブロとも申請フォーム

この人とブロともになる

RSSリンクの表示