ab.com コミュニティ
https://www.activebasic.com/forum/

計算式を逆ポーランド記法の計算式に変える
https://www.activebasic.com/forum/viewtopic.php?t=1191
ページ 11

作成者:  卓漏 [ 2006年7月01日(土) 09:09 ]
記事の件名:  計算式を逆ポーランド記法の計算式に変える

実例としては、計算式「1+2*3+4*(5-6)」を入れると、
逆ポーランド記法に変換した計算式「1,2,3,*,+,4,5,6,-,*,+」が戻ってきます。
また、計算式「(-1)*sin(2)」の場合は、計算式「-1,2,sin,*」が帰ってきます。
自分の方言(プログラムの書き方)の関係で、注釈文が少ない(むしろ書いていない)ので、スパゲッティプログラム化しています。
そのうち、注釈文を追加して、虫退治も行ったプログラムを公開します・・・・。

作成者:  mm [ 2007年4月21日(土) 15:39 ]
記事の件名:  re 計算式を逆ポーランド記法の計算式に変える

((5+7)*(4-2))-15*6/(3+1)

入力すると
5,7,+,4,2,-,*-15,6,3,1,+,/,*
が、返ってきました。

5,7,+,4,2,-,*,15,6,*,3,1,+,/,-

となって欲しいのです。

作成者:  淡幻星 [ 2007年10月14日(日) 02:10 ]
記事の件名:  クラス化して、実数&変数&関数対応にしてみました。

お世話になっております。

クラス化してみました。
変数&実数&関数対応しています。
※関数は、関数認識テーブルにセットしたものだけが有効です。

逆ポーランド記法の取出しには、こちらのキューを使っています。 # ちなみに、「((5+7)*(4-2))-15*6/(3+1)」で試してみると、
# ちゃんと「5,7,+,4,2,-,*,15,6,*,3,1,+,/,- 」の順になります。


【具体的な使用例】
カッコを含む実数の四則算を行う。関数は今回は考慮しない。 関数まで考慮した計算例は後日に余力がありましたら、また。。。
(関数を考慮して逆ポーランドへ変換は出来るが、その先の計算部分が未対応)

→2009.1.18
  関数に対応したコード(Calc_ReversePolishのみ修正)をコチラのスレッドに記載しました。

ページ 11 全ての表示時間は UTC+09:00 です
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/