C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■89189 / 3階層)  テキストボックス内で演算
□投稿者/ はまぐり (66回)-(2018/11/05(Mon) 15:42:11)
No89184 (krh さん) に返信

いろんなやり方が示されていますね

計算結果を得られればよいのか
計算の方法を理解したいのか
主目的をどこに置くかによって回答は違ってきそうですね

私は原始的な計算方法を示そうと思います

テキストボックスの文字列を取得して
字句解析を行ってこれは、被演算子ですね、これは演算子ですねって選別して
構文解析を行って演算子が"+"なので被演算子 + 被演算子の計算をしましょうみたいな感じです

文字列に含まれる文字は数字か記号かですので
字句解析は正規表現を使うでも一文字ずつ読むでもいいですね

構文解析は操車場アルゴリズムというやり方があります
操車場アルゴリズムは、1 + 2のような一般に利用される中置記法を
1 2 +こういう逆ポーランド記法に変換する方法です

逆ポーランド記法に変換してしまえばスタックを使ってさくっと計算できます
774RRさんも示されていますね

素朴に計算したいんだけど何をやればよいかわからないんだぜという
ことでしたらまずは字句解析に取り組んでみるのがいんじゃないでしょうか
数値と演算子をスペースで区切って入力すれば、文字列をスペースで分割して字句解析完了ですよ

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[2]: テキストボックス内で演算 /PANG2 返信無し
 
上記関連ツリー

テキストボックス内で演算 / krh (18/11/05(Mon) 13:39) #89184
Re[1]: テキストボックス内で演算 / 魔界の仮面弁士 (18/11/05(Mon) 14:36) #89187
Re[1]: テキストボックス内で演算 / 774RR (18/11/05(Mon) 14:10) #89186
│└ Re[2]: テキストボックス内で演算 / PANG2 (18/11/05(Mon) 14:50) #89188
│  └ テキストボックス内で演算 / はまぐり (18/11/05(Mon) 15:42) #89189 ←Now
Re[1]: テキストボックス内で演算 / shu (18/11/08(Thu) 17:07) #89220

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信