- PR -

逆ポーランド記法について

1
投稿者投稿内容
未記入
会議室デビュー日: 2004/05/16
投稿数: 2
投稿日時: 2004-05-16 14:20
逆ポーランド記法の式の計算をスタックを用いて行うプログラムをつくりたいのですがつくれません;;

定義1
0〜9は数字である。

+,-,*,/は2項演算子である。

nが数字ならばnは逆ポーランド記法の式である。

f, gが逆ポーランド記法の式で#が2項演算子ならば fg# は逆ポーランド記法の式である。

定義2
0〜9は数字である。

+,-,*,/は2項演算子である。

A1A2…Anの各文字が数字または2項演算子であり、数字は2項演算子よりちょうど1つ多く、なおかつ1≦i≦nの各i番目では数字は2項演算子より1つ以上多いならば、A1A2…Anは逆ポーランド記法の式である。

おねがいします(__)
きよの
常連さん
会議室デビュー日: 2004/02/07
投稿数: 34
投稿日時: 2004-05-16 18:53
引用:

未記入さんの書き込み (2004-05-16 14:20) より:
逆ポーランド記法の式の計算をスタックを用いて行うプログラムをつくりたいのですがつくれません;;



たぶん、大学か何かの仮題か何かを丸投げしているのだと思うのですが、何が分からないのですか?
逆ポーランド記法の説明しなくても大丈夫ですよ。
逆ポーランド記法を処理するコードを書いたことが無かったので書いてみました。そのコードをここで示すのは簡単なのですが、そうしてしまうと、あなたのためにならないので、行いません。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-05-16 20:58
諸農です。

引用:

逆ポーランド記法の式の計算をスタックを用いて行うプログラムをつくりたいのですがつくれません;;



どのようなコードを書かれましたか?
またどのようなところでつまずいているのでしょうか?
具体的に、どのような場面でどのように実装したくて、そしてどのように悩んでいるのかを書いていただければ、コメントもつきやすいと思います。

逆ポーランド記法の実装方法については、プログラミングの宝箱 アルゴリズムとデータ構造という書籍の12章(P.334)に解説があります。C/C++とJavaによる参考コードも合わせて紹介されていますので、解説を読めばC#に翻訳する事もそんなに難しくないはずです。
この書籍ではスタックは自前で実装したクラスを利用していますが、JavaはもとよりC#のFCL(最近はBCLという表現も見ます)にも準備されているので、SDKをキーワード検索すればクラスの利用方法が判ると思います。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-05-17 01:22
http://bungee.j.dendai.ac.jp/algo1/exe/02/
東京電気大学・・・かな?(あ、明日の19時締め切りだ)

.NETでいいんですか?
いいんでしたら、System.Collections.Stackというクラスを使うと良いですよ。
スタックの機能をがありますので、数十行のコードを書くだけでプログラムが出来上がると思います。

本当は、そのスタックの処理がどのようなものなのかというのを知って欲しいからこのような課題を出しているのだと思いますが。

あと、ここを参考にしてください。
http://www.hyuki.com/writing/techask.html
○望んでいる結果
○やってみたこと
○実際の結果
を忘れずに書きましょう。
もし、手も足も出なくて何もやって見ていないというなら、単位を落としたほうがましです。
特に、自分から進んで勉強できない人(私がそうですが)は、単位という仕組みをうまく利用して自分自身を勉強する方向にうまく持っていきましょう。

やる気というのは「よし、明日からやる気を出そう」と考えれば出るもんじゃありませんからね。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-17 08:37
引用:

一郎さんの書き込み (2004-05-17 01:22) に、便乗:

特に、自分から進んで勉強できない人(私もそうですが)は、


この業界で生き残れません。生き残る為にがむしゃらにやってみるか、それが億劫なら違う道を探しましょう。。。

#初心者向けの「OK Web」というところもありますが、
#そちらでも課題をそのまま質問することは禁止されています。
1

スキルアップ/キャリアアップ(JOB@IT)