ユーザー入力から方程式を取得して評価するプログラムを C# で作成しています。現時点では、ユーザー入力を計算し、x などの格納された変数から値を取得する方法があります。が入る方程式は のようなものになります2.0 * 78 * 4X / 3
。
現時点ではX
、それに関連付けられた値に置き換えることができます。ただし、文字列を検索して見つける方法が必要です。その前に数字があるX
場合は、その回数をX
掛けます。X * X
上記の例では、それは 4 回になります。
IndexOf
メソッドを使用するか、文字列をサブ文字列に分割するのが最善でしょうか?
私が望むのは、天気X
の前に数字があることを見つけることだけです。X
そうでない場合X
は、 の値を出力するだけX*X
です。
X
これは、渡されたデータを見つけるためのコードです。理想的には、次のコードを含めたいと思います。
if (name == "x" || name == "X")
{
args.Result = x; // Returns value of x
}
これはすべての残りのコードです
var e = new Expression(input);
// Set up a custom delegate so NCalc will ask you for a parameter's value
// when it first comes across a variable
e.EvaluateParameter += delegate(string name, ParameterArgs args)
{
if (name == "x" || name == "X")
{
args.Result = x; // Returns value of x
}
else if (name == "y" || name == "Y")
{
//....
}
else if (name == "z" || name == "Z")
{
//....
}
// Or if the names match up you might be able to something like:
// args.Result = dataRow[name];
};
//var result =
return e.Evaluate();