- ベストアンサー
逆ポーランド記法
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
逆ポーランド記法の特徴、演算子の優先順位など↓ http://ja.wikipedia.org/wiki/%E9%80%86%E3%83%9D%E3%83%BC%E3%83%A9%E3%83%B3%E3%83%89%E8%A8%98%E6%B3%95 逆ポーランド記法(後置記法)変換プログラムの例↓ http://www.sra.co.jp/people/miyata/algorithm/postfix.txt
その他の回答 (4)
- Tacosan
- ベストアンサー率23% (3656/15482)
LR系の解析手法では「スタックを使って」解析しています. 式の解析に限定しちゃえば「演算子順位解析」あたりが簡単かな. フルスペックの LR を使うほどじゃないし. もちろん LL系, 例えば再帰下降解析も「スタックを使ってる」と言い張ることは可能です.
- sakusaker7
- ベストアンサー率62% (800/1280)
>演算子の優先順位はどのように考えればいいのでしょうか? 乗除算は加減算よりも優先順位が高い とかいうのを使いたい全部の演算子で関係が壊れないように決めればいいだけですが? 左結合の演算子と右結合の演算子(べき乗とか)や、同じ順位の演算子を どうするかという問題はありますけどね。 VB.NET - katamari soulware http://katamari.jp/soulware/index.php/post/category/programming/vbnet 電卓のアルゴリズム http://www.di.takuma-ct.ac.jp/~miyatake/open/calc/calcsimu.html
> スタックを使うのも作ってみたいのですが,演算子の優先順位はどのように考えればいいのでしょうか? スタックは変換した逆ポーランド記法の計算で試してみるのがよいかと思います。
二分木を使えば効率よく実装できると思います。
関連するQ&A
- 逆ポーランド記法の優先順位
問題 X=(A+B)×(C-D÷E)を逆ポーランド記法へ 解説1)計算の優先順位を考える X=(A+B)×(C-D÷E) │ │ └┬─┘ │ └──┬──┘ └──────┘ 2)優先順に逆ポーランド記法に変換(A+B→AB+) A+B → AB+ D÷E → DE÷・・・つづく 優先順位はどうやって判断するのですか。知っている方お願いします。
- 締切済み
- 情報処理技術者
- ポーランド記法、逆ポーランド記法のプログラム
ポーランド記法、逆ポーランド記法のプログラムがわかる方、是非教えてくださいm(__)m 言語は何でもいいのでお願いします~
- ベストアンサー
- C・C++・C#
- ポーランド記法(前置記法)のアルゴリズム
ポーランド記法を使用した計算のアルゴリズムについて教えてください。 逆ポーランド記法についてはたくさんの資料が存在しますが、ポーランド記法については資料がないのでどのように考えたらよいのかわかりません。 スタック又は木構造を用いて計算するアルゴリズムをお願い致します。
- ベストアンサー
- C・C++・C#
- 逆ポーランド記法の変換法
以前逆ポーランド記法の優先順位について質問したのですが、いまいち変換法が分かりません。 例1 A+B*(C+D)+E →ABCD+*+E+ ABとCDがなぜ一緒になるのか。 例2 (A+B)*(C-D)→AB+CD-* なぜ例1のABとCDは、ABCDになって、こっちはAB+CDなのか。なぜ*が一番後ろなのか。参考書は2冊ありますが、見ても?です。手順を詳しく説明して頂ける方、よろしくお願いします。
- ベストアンサー
- 情報処理技術者
- 逆ポーランド記法について
学校で A=(B-C)/D+E*Fを逆ポーランド記法で書くのを講師が ABC-DE+F*/= と書いたのですが/の位置は ABC-D/E+F*= こう書くのだと思ったのですが何が違うのでしょうか?
- 締切済み
- C・C++・C#
- 逆ポーランド記法における単項演算子などの処理
開いていただきありがとうございます。 質問内容は題名の通りなのですが、 中置記法の式を逆ポーランド記法に変換して計算を行う際に単項演算子をどのように扱うかで悩んでいます。+-などのように文脈に応じて意味合いが変化するものもあり、もうひとつスマートに処理することができません。 また前置・後置インクリメントなどに対応するとしたらなおざりに処理するわけにもいきませんし、三項演算子に至ってはどのように処理すればいいのかさっぱりです。 電卓に留まらず、簡単な処理系に組み込むという前提で、これらをどのように使えばよいかご教示いただければと存じます。
- 締切済み
- その他(プログラミング・開発)
- VB6.0で逆ポーランド記法のソースコードを教えてください
VB6.0で逆ポーランド記法のソースコードを教えてください。 できれが、通常の計算式から逆ポーランドに変換して計算結果が求められるまで。 お願いします。
- ベストアンサー
- Visual Basic
- 逆ポーランド記法への変換方法を教えてください。
Visual Studio C++ 6.0で逆ポーランド電卓のプログラムを作っていますが、式の変換方法がわからないので教えていただければ助かります。 たとえば (8 + 9 * -8) * 10 だと 8 9 -8 * + 10 * に変換できますが、 -(8 + 9 * -8) * 10 だとどう変換すればよいのかがわかりません。
- 締切済み
- C・C++・C#
- 電卓ソフトを作るには逆ポーランド法で良いのですか?
プログラミングの勉強をしながら式入力型の電卓を作りたいと思い調べたところ「逆ポーランド法」を知りました。 まず四則演算出来るものを作り最終的には関数電卓を目指そうと思っているのですが、この「逆ポーランド法」を取り入れた計算プログラムを学べば良いのでしょうか?もっと適している他の手法はありますか? 公開されている式入力型の電卓ソフトはどのような手法でプログラムされているのでしょうか?(なかなか式入力型のサンプルが見つからなくて…。) 言語はActiveBasicを使用していますが、情報が少ない為VisualBasicのサイトで勉強しています。 宜しくお願いいたします。
- 締切済み
- その他(プログラミング・開発)
お礼
ありがとうございます. 早速,作ってみようと思います. スタックを使うのも作ってみたいのですが,演算子の優先順位はどのように考えればいいのでしょうか?