- ベストアンサー
ポーランド記法、逆ポーランド記法のプログラム
ポーランド記法、逆ポーランド記法のプログラムがわかる方、是非教えてくださいm(__)m 言語は何でもいいのでお願いします~
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
逆ポーランド記法だったら、大きなスタックを作って計算させるのが 楽なことで有名です。 式を前から読み込んでいって ・数字がきたらスタックに積む ・演算子がきたらスタックから二つ取り出して計算して結果をスタックにつむ の繰り返しで計算機ができてしまいます。 http://www.sm.rim.or.jp/~shishido/pol.html http://karma.j.dendai.ac.jp/for2j/algo1/kaisetsu07.html #スタック自体わからなかったらそう書いてください
その他の回答 (3)
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.4
> (3*(3+4)-2)と入力したら、3 3 4 + * 2 -というように変換された出力が得られるプログラムを作ろうと思っています。 ...最初っからそう訊いて欲しい。 下記 URL 参照。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.3
> 例えば、(3*(3+4)-2)と入力したら、19という出力が得られるプログラムを作りたいと思っています。 ならばまず、入力された数式をRPNに変換、すなわち: 3 3 4 + * 2 - に変換します。あとは #2 にあるとおり。
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
回答No.1
PN/RPNの何について知りたいのですか? 正直これでは答えようがありません。
質問者
補足
説明不足でしたね。すみませんm(__)m PN/RPNのプログラムを作って、実際に動かそうと思っています。 例えば、(3*(3+4)-2)と入力したら、19という出力が得られるプログラムを作りたいと思っています。 言語はC言語でもPascalでもアセンブリ言語でも何でもいいと思っているのですが…
補足
すみません。また説明間違ってましたm(__)m (3*(3+4)-2)と入力したら、3 3 4 + * 2 -というように変換された出力が得られるプログラムを作ろうと思っています。今作っているのですが、思いどうりにプログラムが動きません。どうか教えてくださいm(__)m