見出し画像

RPN電卓のススメ

皆さんは RPN 電卓をご存知でしょうか?
RPN(逆ポーランド記法)電卓は、一般的な電卓とは違うやり方で計算するのですが、実は日本語的な操作なので慣れると一般的な電卓よりも使いやすくなります。日本でこの方式の電卓を作るメーカーが無かったためか、あまり普及しませんでした。

RPN電卓の記事を久々に見た

偶然「君は逆ポーランド電卓を知っているか? ~そして自作へ」という記事を見たのが、投稿のきっかけ。→ 記事へ
しかも、自作にとどまらず、記事に対して販売を希望する人が多いため、キットとして販売もされている。 → 販売サイトへ

スマホ用アプリもある

スマホやタブレットで動作する実機そっくりなアプリも沢山あります。
実機で人気が高いのは HP-15C のようです。これはRPN方式に加えて関数電卓の機能があるもの、これについで人気があるのは HP-12C でこれは金融関係の関数が特徴です。
中でも私のお勧めは HP-42S を再現した Free42 です。

Free42 の紹介

Free42 のスクリーンショット(プログラム入力中)

これは、HP-42S を再現したオープンソースのアプリで、スマホだけでなく、Mac や Windows, Linux でも動作します。
ソースコードは ここ で公開されています。(github)
HP-42S で私がお勧めするのは、プログラム機能です。
HP-12C や HP-15C にもプログラム機能はありますが、HP-42S のプログラムはコレらのものより読みやすいし、編集機能も良く利用もしやすいと思います。
 しかも、日本語のマニュアルも入手できます。
 → 日本語のマニュアル(サイズが大きいので時間がかかります)

計算例

例えば、BMIの計算式「[体重] / ([身長(cm)] / 100)^2」 を一般的な電卓で計算する場合、メモリーを使う必要があって、次のように操作しますね。
[身長] [÷] [100] [=] [X] [=] [M+] [体重] [÷] [RM] [=]

でも RPN 電卓だと操作は
[体重] [Enter] [身長] [Enter] [100] [÷] [Enter] [X] [÷] 
となります。コレは日本語で「体重を身長を100で割った値の二乗で割る」という言い方に近いキー操作でですね。(上記は二乗関数が無い場合の操作)

Free42 のプログラム例

上記のBMI計算を Free42 (HP-42S) では、次のようなプログラムになります。

01 LBL "BMI"
02 INPUT "W"
03 ENTER
04 INPUT "H"
05 100
06 ÷
07 ENTER
08 X
09 ÷
.END.

これを一度実行すると体重(W)と、身長(H)の値は記憶されているので、2回目以降の計算時には違っている値だけを入力して計算できます。
更に 2乗関数を使うと、次のように1行少なくすることができます。

01 LBL "BMI"
02 INPUT "W"
03 ENTER
04 INPUT "H"
05 100
06 ÷
07 X^2
08 ÷
.END.

プログラムの簡単な解説

INPUT 命令は、名前の変数に値がセットされると同時に X レジスターにも残っているので、03 行目の ENTER でそれが Y レジスターにプッシュされます。また、05 行目で100 が入力されると X レジスターに残っていた値(身長)がプッシュされます。07 行目の ENTER では X レジスターの割り算の答えがプッシュされ、Xレジスターにも残っているので 08 行目の掛け算でポップされた値と掛け算(二乗)されXレジスターに残り、Yレジスターには体重の値が降りてきます。09 行目ではその値を割り算してXレジスターにセットされます。
 このスタックの機能については引用したサイトなどに解説がありますので、気になる方はそちらか、マニュアルをご覧ください。
HPの電卓ではレジスター X, Y, Z, T の4段のスタックです。

RPN 電卓、好きになりました?

面白そうだと思ったら、フリーのアプリで遊んでみてください。
お子さんだと、ちょっと説明するだけで面白がってハマると思います。

ご意見など歓迎します。


この記事が気に入ったらサポートをしてみませんか?