
A 回答 (16件中11~16件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
あー、ひょっとしたらshellが上手く動いてないのかなぁ。
ええと、Windows?
Windowsだとしたら冒頭のシェバングがひょっとしたら
#! /usr/bin/env python
でいいかもしんない。
それはさておき。
WindowsだとしたらDOS窓かなんかで、そのスクリプトを置いた場所に移動(cdコマンド)して、そのスクリプト名を打って、Enterキー(ないしはリターンキー)を打って実行してください。
そうすると入力になるんで、そこではじめて数式を打ち込みます。
こっちはLinuxでやってるんで完全に同じじゃないんだけど、大体画面的には次の写真のようになりますね。

Windowsでスパイダーを用いています
実行結果を補足説明で画像添付しました。
このように計算結果を表示するんですよね…
後半のスクリプトに移動して数式を打ち込む?というのはよくわからないです
No.5
- 回答日時:
> やはり計算結果のみの表示で逆ポーランド記法での計算式は表示されないですね…
それはおかしいですね。
プログラム的には単純に言うと、ある文字列から別の文字列に変換してるだけなんで、「計算結果」なんて出ない筈ですが・・・・・・。
何で勝手に計算結果なんぞ出てるんだ(笑)?
下の写真のようにならない?
だとしたらオカルトですよ(笑)。
近くに心霊スポットとかないですか(笑)?

No.4
- 回答日時:
> 階乗計算を含めるとエラーが出てしまいます。
階乗計算をどうやったかは知りませんが、このプログラム上では**を使ってます。
3 ** 2
3 2 **
>>>
3 + 2 ** 4
3 2 4 ** +
>>>
> 計算結果だけでなく、中間記法で書いた計算式をを逆ポーランド記法での表示も可能でしょうか?
あれ?そのプログラムを書いた筈ですが・・・・・・。
すいません、階乗計算についてはこちらのミスで普通にできました
ですがやはり計算結果のみの表示で逆ポーランド記法での計算式は表示されないですね…
No.3
- 回答日時:
あー、ちなみに。
コピペしたら多分ダメだと思いますよ。
教えて!gooではインデントが消去されてしまうので、わざと全角の空白をインデント代わりに使っています。
よって、コピペしたら多分、全角空白をパーズした時点でエラーとなるんじゃないかしらん。
メンド臭くても写経してください。
そうなんですね
足し算や掛け算などは行えたのですが、階乗計算を含めるとエラーが出てしまいます。
あと、計算結果だけでなく、中間記法で書いた計算式をを逆ポーランド記法での表示も可能でしょうか?
多くて申し訳ありませんが、ご教授のほどよろしくお願い致します。
No.1
- 回答日時:
#!/usr/bin/env python3
def infix2RPN(e):
# 演算子は自由に追加して良い。
# 数値が多い程優先順位が高い事にしている。
operator_precedence = {"(" : 0, ")" : 0,
"+" : 1, "-" : 1,
"*" : 2, "/" : 2, "%": 2,
"**" : 3}
stack = []
buffer = []
for token in e:
if token.isdigit():
buffer += [token]
elif token in operator_precedence.keys():
if token == ')':
while (ch := stack.pop(0)) != '(':
buffer += [ch]
elif token == '(':
stack = [token] + stack
else:
while True:
if stack == []:
stack = [token] + stack
break
elif operator_precedence[token] > operator_precedence[stack[0]]:
stack = [token] + stack
break
else:
buffer += [stack.pop(0)]
else:
pass
return buffer + stack
if __name__ == '__main__':
print(" ".join(infix2RPN(input().split(" "))))
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
c/c++ ビルドしたにもかかわら...
-
OLE又はDDEを使うVISUAL BESIC...
-
コンポーネント`MSCOMM32.cox'...
-
VBAでMP3を鳴らしたい
-
batからexeを起動した際の戻り...
-
ディレクトリを変更して外部コ...
-
Visual BASIC か...
-
アプリケーションとソースコー...
-
ファイルアイコンの左下に緑の□...
-
指定URLでブラウザを開くほか
-
eclipseで作ったプログラムを他...
-
VB6.0で作ったプロジェクトが起...
-
アイコンにD&Dしたファイル...
-
MDBファイルをCSV出力したい
-
コマンドプロンプトにてスター...
-
VBフォームアプリケーションに...
-
サーブレットをapacheで公開す...
-
JAVA .jarファイルに再圧縮する...
-
パンドラバッテリー 作成について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
c/c++ ビルドしたにもかかわら...
-
JavaScriptでコマンドプ...
-
OLE又はDDEを使うVISUAL BESIC...
-
コンポーネント`MSCOMM32.cox'...
-
LINK : fatal error LNK1104に...
-
以下のように複数のファイルを...
-
VBAでEXEファイルを動かす方法...
-
コマンドプロンプトで外のexeや...
-
jarの開き方を教えてください。
-
WScript.Echo と msgbox
-
VC++から引数付きexeファイルの...
-
実行ファイルと実行モジュール...
-
VBAで他のプログラムが起動して...
-
コンパイル ./aと./a.out の違い
-
JAVA .jarファイルに再圧縮する...
-
VBフォームアプリケーションに...
-
jarファイルとjava.exeの関連付...
-
64bit環境で32bitのodbc参照
-
VBS形式ファイル:ダブルクリッ...
おすすめ情報
実行結果
補足
補足