問題タブ [rpn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
11421 参照

c++ - 後置記法 C++ への中置

こんにちはスタック 私は現在 RPN コンバーターを作成しようとしていますが、C++ は初めてです。しかし、私は問題に直面しています。うまくいけば、問題を詳細に説明できます。オペレーターをスタックするために配列を使用しています。「5 + 8」の例を使用してみましょう。

何らかの理由で、演算子をスタックにプッシュしますが、要素を追加する後置文字列変数に演算子を追加しません。出力は "5 8" のようになります。pop 関数を調べたところ、正しいように見えますが、困惑しています。あなたが私を正しい方向に導くことができれば、それは素晴らしいことです。

これは私の完全なコードです:

また、C++ RPN コンバーターに関する優れたリソース サイトを知っている場合は、遠慮なく共有してください。非常に役立つからです。私はランダムなアルゴリズムをオフにしています。グーグルで見つけたもの。

0 投票する
2 に答える
1586 参照

c++ - 3 つ以上のオペランドを持つ後置式の計算に関する問題

リンクされたリストを使用してスタックを維持しながら、単純な操作 (+、-、​​、/) を行う RPN (後置表記) 電卓を作成する必要があります。大部分は完了しましたが、いくつかの問題が発生しています。1 つのオペランドで任意の 2 つの数値を計算できますが (例: 5 5 + = 10)、それ以上のことはできません。私はオンラインでいくつかの調査を行い、いくつかの YouTube ビデオを見て現在の状況を把握しましたが、ほとんどの場合、スタック参照を使用してそれを実行しています。独自のスタックを作成する方法とともに、チュートリアルを組み合わせようとしました。

私はこれにまったく慣れておらず、より大きな式(例:5 5 5 + + = 15)を計算する方法についてかなり迷っています。また、エラーをチェックする必要もあります。エラーはいくつか完了しましたが、苦労するのは「演算子が多すぎる」と「オペランドが多すぎる」です。演算子が多すぎると、そこに値がないために値をポップできないことに関係があると思いますが、それは私が得ることができる限りです(正しい場合、実装方法はまだよくわかりません)それ)。これらの 3 つのことのいずれか、またはここで確認できるその他のことについて、何かお役に立てば幸いです。

0 投票する
1 に答える
3931 参照

c++ - Postfix Notation Calculator (RPN) の問題 C++

ほんの数日前に同じプログラムで助けを得た後、助けを求めて戻ってくるのは嫌いですが、私はこのプログラムを完了するのに本当に苦労しています. つまり、5 5 5 + + (=15) などの式を実行できる、連結リスト スタックを備えた後置記法計算機 (RPN) を作成する必要があります。メインの計算部分はなんとかできましたが、2 つのエラーの処理に苦労しています。1 つは「演算子が多すぎる」、もう 1 つは「オペランドが多すぎる」です。現在、「オペレーターが多すぎます」に取り組んでおり、近づいているように感じますが、そこに到達することはできません。

ユーザーが最初のエントリで 5 5 + + を入力すると、それがキャッチされ、「オペランドが多すぎます」と表示されます。ただし、前の計算のスタックに何かが既にある場合、同じ式 5 5 + + を入力すると、スタックが空であるとは言えず、前の数値が使用された答えが出力されます。ここで私が間違っている場所を誰かが見て、他のエラー「オペレーターが多すぎます」(例: 5 5 5 +) を理解する方向に私を指摘してくれれば、それは大歓迎です。よろしくお願いします。

(さらにいじった後、計算を行うほど、空と見なされるために実際に配置する必要がある演算子が増えるようです。各式の前に popVal をどこかに配置する必要があると推測していますが、どこに配置するかはわかりません。私は多くの場所を試しましたが、うまくいきませんでした)

0 投票する
1 に答える
1167 参照

python - Python での逆ポーランド計算機の例外処理

したがって、このプログラムはほぼ完成しましたが、これらのルールに基づいて適切な例外処理を行う方法がわかりません。

次の状況 (エラー) を処理する必要があります。

演算子が多すぎます (+ - / *)

オペランドが多すぎます (double)

ゼロ除算

促す

この課題では、ユーザーが提供する逆ポーランド式の結果を計算するプログラムを作成します。

このプログラムのスタックを維持するには、リンクされたリストを使用する必要があります (スタックの配列実装は完全なクレジットを受け取りません)。

次の状況 (エラー) を処理する必要があります。 演算子が多すぎる (+ - / *) オペランドが多すぎる (double) ゼロによる除算

プログラムは、演算子とオペランドを 1 つのスペースで区切るポーランド式を取り込み、式を改行で終了します。

プログラムは、ユーザーが行にゼロ (0) だけを入力し、その後に新しい行を入力するまで、式の取得と評価を続けます。

サンプル出力は、すべてのエラー条件の処理を示し、すべての演算子を使用する必要があります。

サンプル IO: (注: 出力のフォーマットは重要な問題ではありません)

プログラム

これが私がこれまでに得たものです:

助けてくれてありがとう!

0 投票する
3 に答える
408 参照

java - Postfix calc は適切な間隔でのみ機能します (つまり、3 14 2*7/ は例外をスローします)。

投稿されたコードは操作に対して機能しますが、演算子とオペランドの間にスペースがない場合は機能しません。

計算する4つの式が与えられました

  1. 10 2 8 * + 3 -

  2. 3 14+2*7/

  3. 4 2 + 3 15 1 - * +

  4. 1 2 + 3 % 6 - 2 3 + /

(間隔は重要です)

式 2 は、現在の電卓を使用して計算しない式です

これが私のコードです

ここにスタックトレースがあります

0 投票する
3 に答える
156 参照

java - リストから答えを計算する

括弧、プラス、マイナス、除算、乗算を処理できる電卓をJavaで作成する必要があります。これまでのところ、ユーザーが入力した場合:

14 * ( 2 - ( 3 / 2 ) )

次に、ArrayList を次のように返します。

これは私が欲しいものです

次に、「/」を 2 と 3 に適用して取得するにはどうすればよいですか。

2 と 1.5 に「-」を追加すると、次のようになります。

これは続き、最終的な答えは 7.0 になります

誰でもこれを行う方法についてアドバイスできますか?

どんな助けにも乾杯:)