次のような文字列を提供"y = 1, x = 2, w = x + y +1"
.net または任意の言語を数式に変換して計算するにはどうすればよいですか?
今、フレームワークではなく、その背後にあるロジックについてもっと心配しています。
私のロジックは次のようになりますが、まだ不完全です。より高速またはより優れたものがあり、問題がなければロジックを完成させるのに役立ちますか???
擬似コード:
symbols[] = { "=","+" ... "-"}
string a = "y = 1, x = 2, w = x + y +1";
a = a.replace(" ","");
highlevelsplit = a.split("=");
for expr e in highlevelsplit
{
if(e.containts(=))
{
highlevelsplit[highlevelsplit.indexof(e)] = calc(highlevelsplit[highlevelsplit.indexof(e)+1]
}
}
function calc(string expr)
{
array[] = expr.toCharArray();
variables[][];
var c;
var currentVariable;
for int i=0; i<array.length-1; i++
{
c = array[i];
if( symbols.containts(c) )
{
if( c.equals("+"))
{
}
....
}
else if ( c.notNumber && variables.containtsKey(c))
{
}
else if ( Float.TryParse(c))
{
}
else //probably a letter?
{
variables.push(c,0);
currentVariable = c;
}
}
}