• ベストアンサー

ポーランド記法、逆ポーランド記法のプログラム

ポーランド記法、逆ポーランド記法のプログラムがわかる方、是非教えてくださいm(__)m 言語は何でもいいのでお願いします~

質問者が選んだベストアンサー

  • ベストアンサー
  • 3048F
  • ベストアンサー率25% (2/8)
回答No.2

逆ポーランド記法だったら、大きなスタックを作って計算させるのが 楽なことで有名です。 式を前から読み込んでいって ・数字がきたらスタックに積む ・演算子がきたらスタックから二つ取り出して計算して結果をスタックにつむ の繰り返しで計算機ができてしまいます。 http://www.sm.rim.or.jp/~shishido/pol.html http://karma.j.dendai.ac.jp/for2j/algo1/kaisetsu07.html #スタック自体わからなかったらそう書いてください

その他の回答 (3)

回答No.4

> (3*(3+4)-2)と入力したら、3 3 4 + * 2 -というように変換された出力が得られるプログラムを作ろうと思っています。 ...最初っからそう訊いて欲しい。 下記 URL 参照。

参考URL:
http://www.logical-paradox.org/ja/nsxbasic/nsxbasic3.html
回答No.3

> 例えば、(3*(3+4)-2)と入力したら、19という出力が得られるプログラムを作りたいと思っています。 ならばまず、入力された数式をRPNに変換、すなわち: 3 3 4 + * 2 - に変換します。あとは #2 にあるとおり。

akiko7
質問者

補足

すみません。また説明間違ってましたm(__)m (3*(3+4)-2)と入力したら、3 3 4 + * 2 -というように変換された出力が得られるプログラムを作ろうと思っています。今作っているのですが、思いどうりにプログラムが動きません。どうか教えてくださいm(__)m

回答No.1

PN/RPNの何について知りたいのですか? 正直これでは答えようがありません。

akiko7
質問者

補足

説明不足でしたね。すみませんm(__)m PN/RPNのプログラムを作って、実際に動かそうと思っています。 例えば、(3*(3+4)-2)と入力したら、19という出力が得られるプログラムを作りたいと思っています。 言語はC言語でもPascalでもアセンブリ言語でも何でもいいと思っているのですが…

関連するQ&A

専門家に質問してみよう