ホーム 研究内容 FreeBSD HP電卓 今日のgoo Links

--ホーム--
研究内容
FreeBSD
HP電卓
--Links--
BSD
Security
Hardware
NetHack
HP電卓

MRPNC: Motif(tm) RPN Calculator Users Manual

0. これだけは,頭に入れておこう

  • 単項演算は,スタックの移動を伴わない.
  • 二項演算は,今表示されているXとYに対して行われる.
  • 演算の直後の数字キー入力は,自動的なスタックの移動を発生させる.

1. はじめに

ここでは,MRPNCの説明を行います.MRPNCを起動して,実際の画面を見ながら 読んでください.

2. 起動

インストールしたmrpncを実行してください.すると,電卓のような(:-))画面 があらわれます.

3. コンソール

このマニュアルでは,電卓の画面をコンソールと呼ぶことにします.コンソー ルは,

  • 6段スタック
  • オプション設定領域
  • キーボード

に分割されています.

3.1. キーボード

3.2.スタック

このプログラムは,defaultで6段のスタックを持っています.これらは,X, Y, Z, S1, S2及びTと名前がつけられています.このうち,TとXは他と異なる 特徴を持っているので注意してください.計算結果は,必ずスタックXに格納 されます.

まず,スタックXについて説明します.ここは,スタックの先頭です.演算の 結果は必ずこのスタックに格納されます.また,この領域は,数字の入力にも 使われます.直前の演算結果であり,且つ,入力領域でもあるという矛盾を解 消するため,mrpncでは,以下のような動作を行います.

まず,起動若しくは演算直後の最初の数字キー入力のときに,スタックをpush します.すなわち,スタックXの内容はスタックYに移り,スタックYの内容は スタックZに移ります.残りのスタックも同様です.また,もともとのスタッ クTの内容は破棄され,元のスタックS2の内容になります.そして,入力され た数字がXに表示されます.これは,数字を入力した後は,演算又は Enterのいずれかが行われるという仮定に基づいています.

次に,演算直後に再度演算キーを入力した場合について説明します.この場合 は,単項演算子であれば,スタックXの内容を取りだし,演算結果を再びスタッ クXに格納します.ただし,決してPOPするわけではありません.このことは, スタックTの挙動に影響します.これについては,後で説明します.

また,二項演算子であれば,スタックから二回POPを行い,結果をXにPUSHしま す.重要なことは,二項演算子は,現在コンソールに表示されているX及びYの 内容について行われということです.すなわち,数字キー入力に続く二項演算 子は,入力された数字をスタックXに積む作業を自動的に行うということです. これは,

  • 1 ENTER 2 +
  • 1 ENTER 2 ENTER +

の違いを見れば明らかです.前者は,3になり,後者は4になります.

スタックT

スタックTは他のスタックとちょっとだけ動作が異なります.これは,スタッ クTの内容はPOPの後も変化しないということです.POPを行っても,決してス タックTが空になることはありません.

3.3. オプション設定

4. 演算の例

では,mrpncを使った計算例を示します.RPN電卓で重要なことは,数字を入力 した後で自分自身に対して「演算を行う必要があるか?」と尋ねることです. そして,

  • 「はい」であれば,演算キーを押しましょう.
  • 「いいえ」であれば,ENTERキーを押しましょう.

これは,非常に単純ですが重要なことです.そして,注意しなければならない 唯一のことがらです.普通の電卓を扱う時のように,括弧に注意する必要はあ りません.なぜなら,括弧を使わないからです.

4.1. 四則演算

まずは,二項演算子の基本として,四則演算を見てみます.四則演算に限らず, すべての二項演算子は,キーを押した時点で表示されているYとXに対して行わ れます.

簡単な例についてRPNとAlgebraicの対応を見てみます.

AlgebraicRPNmrpncのキー操作
加算1 + 2 = 31 2 +1 ENTER 2 +
減算20 - 2 = 1820 2 -20 ENTER 2 -
乗算4 * 2 = 84 2 *4 ENTER 2 *
除算72 / 8 = 972 8 /72 ENTER 8 /

また,Algebraicで1 + 2 + 3 + 4 =となる場合は,

1 ENTER 2 + 3 + 4+

となります.次に,もうちょっと複雑な式を考えましょう.

Algebraic2 * (2 + 3) + (4 + (6 / 3) * 2)
RPN2 2 3 + * 4 6 3 / 2 * + +
mrpnc2 ENTER 2 ENTER 3 + * 4 ENTER 6 ENTER 3 / 2 * + +

RPNを知っている人には,なんのこともない操作だと思います.RPNは日本語み たいという話がありますが,「2と2と3を足したものを掛けて4と6を3で割った ものに2を掛けたものを足したものを足す」というわけわかんない日本語にな ります.

4.2. その他の二項演算子

Y^X
YのX乗を求めます.

4.3. 単項演算子

単項演算子は,キーを押した時点でXに表示されている数に対して演算を行い ます.また,スタックの移動をいっさい伴わないことに注意してください.
sin, cos, tan
三角関数を求めます.
asin, acos, atan
逆三角関数を求めます.
sinh, cosh, tanh
を求めます.
asinh, acosh, atanh
を求めます.
1/X
逆数を求めます.
X!
階上を求めます.
log
常用対数を求めます.
ln
自然対数を求めます.
10^X
10のX乗を求ます.
e^X
e(自然対数の底)のX乗を求めます.
sqrt
平方根を求めます.

4.4. スタック操作


リーガル Contact 名大岩鉱 名大地球 名大年測
Copyright KATO Takenori, 1997, 1998, 199, 2000. All rights reserved.