LX で動く単純な無限スタック電卓です。 演算やスタック操作は,LX CALC に合わせています。 スタックの動きが目で見えますので,学習に最適(?)でしょう。 作成には「awk経典」の電卓を参考にしました。 RPN の仕様(動き)がおかしいという時は指摘してください。 単純な awk script です。 いろいろ,自分で拡張してみてもおもしろいと思います。 4段スタックRPN電卓のシュミレートとか誰か挑戦しませんか? [仕様] 要求環境:DOS, UNIX, MAC, WIN 等 awk が使える環境 スタック:無限(awk の実装仕様とハード資源にのみ制限される) レジスタ:無限(awk の実装仕様とハード資源にのみ制限される) 演 算 :四則演算,逆数,平方根,符号反転, 階乗, LastX, スタックダウン,xyスタック交換, スタッククリア 表 示 :演算(操作)結果,スタックリスト,レジスタ内容,LastX [起動方法] DOS を例にします。 jgawk -f rpn.awk con 上記のように con(コンソール) を指定して起動します。 起動直後はなにも表示はありません。 [使用方法] 1.数値のスタックへの積み方 ・数値を入力(指数形式でも可)後,{Enter} します。 1.2345{Enter} 1.23e4{Enter} ・複数入力も可能(1つ以上のスペースまたはタブで区切り) 1 2 3 4 5{Enter} ・{Enter} すると,スタックの内容等が表示されます。 2.演算の仕方 ・四則演算→ [+, -, *, /] を入力し,{Enter} します。 1 2 3 + * 1 2 / 3 4 / + ・スタック操作→ 全消去[a または clr], 平方根[z または sqrt], 逆数[x または 1/x], 入れ替え[c または xy], LastX 呼出[b または last] 1 2 c または 1 2 xy 2 z または 2 sqrt → 1.4142 2 x または 2 1/x → 0.5 (英字1文字は,LXキーボードに合わせています) ・レジスタ操作→ 格納[n に続けて任意の文字列(変数名)] 引出[m に続けて指定の文字列(変数名)] 123 n1 m1 123456 nlenth mlenth 1 mx 2 my nx ny + → 3 (n=STO に続けて数字一文字をうてば,LX_CALC と同じ感覚です) [終了方法] {Break} する。 または,Ctrl+Z を入力する。