wvogel日記

自分用の技術備忘録が多めです.

我流数式解析

前教わった方法でやる方法を考えるのがしんどかったので、自分で考えた方法で処理するプログラムを作ることにしました。
簡単のため、負の数は考えてませんが、2桁以上の数には対応させます。


とりあえず、画像のように、()内の+-*/以外は、すべてそこで文字列を区切るようにしました。
      
これで、後は、文字列の後ろの四則演算子の優先順位を比較して、計算する順番をはじき出します。
()内については、似たような処理の繰り返しで先に値を出しておきます。


これだと割と簡単に解ける気がします。


因みに、画像内の、a.length()やa.GetS()の実行内容は、画像切り取る範囲の都合上映っていません笑
テスト用に作っただけの関数だし。
a.Ans();
と打てば、後はクラス内で勝手に答えを持ってきてくれる仕様にします。