软件版本:Diagram Designer (Version 1.24)
下图为 Diagram Designer 的表达式求值工具:

在程序的帮助手册中,对这个表达式求值工具的使用有着较为详细的描述。(在【Using Diagram Designer】的【Expression Evaluator】章节,不过内容是英文的)
里面提到了这个表达式求值工具有下面几个特征(Notable Features):
trigonometric functions(计算三角函数)
hyperbolic functions(计算双曲函数)
logical operators(逻辑运算符)
named user variables can be created and used(用户可以自定义命名和使用变量)
recursive descent parsing (ie. handles nested terms) (递归下降分析法)
equations can be programmed and used later(可以编写方程并在之后使用)
multi-line programming with a single result (多行程序输出单个结果)
some constants built-in, more can be added by user using expressions(除了已经被写入的常量,用户还可以加入更多表达式)
equation solving (roots, minimums, etc.) and plotting - plots can be inserted into diagrams(解方程,绘制函数图像)
帮助文档中对于编辑器各部分区域的命名如下图,本文将沿用这些称呼:

其中,【Expression Area】(表达式区)是用户键入表达式的地方,【Result Area】(结果区)是工具显示计算结果的地方,左下角的【Available Functions & User Vars, etc】是目前编辑器内已经注册的函数和变量,可以被直接使用。
用户可以在表达式区里输入下面三种格式的文本:
1):Variable_name=variable_contents; 
为变量赋值,可以创建新变量,也可以更新既有变量的值。如 :abc=123; 代表将123赋给变量abc
2):Function_name(function_variable)=expression_in_variable; 
创建函数,这里的函数只能有一个自变量,如 :f(x)=x^2; 是可以的,但 :f(x,y)=x^2+y^2; 的不可以的
3)expression_to_evaluate 
计算表达式,如输入 sin(1),在结果区会显示“0.841470984808”
表达式求值工具中可以使用下面几个运算符:
| 运算符 | 说明信息 | 
| & | 逻辑与(非0数字都被视为真) | 
| | | 逻辑或(非0数字都被视为真) | 
| = | 等于,等号两侧的值相等则返回1,否则返回0 | 
| # | 不等于,不等号两侧的值相等则返回0,否则返回1 | 
| > | 大于等于,结果为真则返回1,否则返回0 | 
| < | 大于等于,结果为真则返回1,否则返回0 | 
| + | 加法运算 | 
| - | 减法运算,负号 | 
| * | 乘法运算(乘以) | 
| / | 除法运算(除以) | 
| % | 求余运算【注】 | 
| ^ | 求幂运算,x^y 代表 x 的 y 次幂 | 
【注】:求余运算中,帮助手册里的说法并不准确。帮助中的原文是
Result is the remainder of integer division, eg. 16.1%3.03 is equivalent to 16/3. Remainder (result) in this example is 1.
即模除时所有非整数会被转换为整数再做运算,但这个说法经过实施检验不能成立 16/3 的值是1,而 16.1%3.03 的值是0.95
表达式求值工具内默认的常量如下:
| 常量 | 值 | 
| e | 2.718281828459 (自然对数) | 
  
| inf | infinity (≈ 1 / 0) (无穷大,值为INF) | 
  
| kb | 1024 (2的10次方) | 
  
| Mb | 1048576 (2的20次方) | 
  
| pi | 3.14159265359 (圆周率) | 
  
这里的常量只是几个最为基本的常量
1)三角函数
| 三角函数 | 返回值 | 
| cos(x) | 余弦函数,x为弧度 | 
| arccos(x) | 反余弦函数 | 
| sin(x) | 正弦函数,x为弧度 | 
| arcsin(x) | 反正弦函数 | 
| tan(x) | 正切函数,x为弧度 | 
| arctan(x) | 反正切函数 | 
| cot(x) | 余切函数 | 
注意:这里的三角函数中并没有反余切函数;也没有正割、余割、正矢、余矢等三角函数
2)双曲函数
| 双曲函数 | 返回值 | 
| cosh(x) | 双曲余弦 cosh(x) = (ex + e-x) / 2 | 
| arccosh(x) | 反双曲余弦 | 
| sinh(x) | 双曲正弦 sinh(x) = (ex - e-x) / 2 | 
| arcsinh(x) | 反双曲正弦 | 
| tanh | 双曲正切 tanh(x) = sinh(x) / cosh(x) | 
| arctanh(x) | 反双曲正切 | 
3)取整函数
| 取整函数 | 返回值 | 
| ceil(x) | 取天花板,返回比x大的最小整数 | 
| floor(x) | 取地板,返回比x小的最大整数 | 
| frac(x) | 获取一个实数的分数部分 | 
| round(x) | 类似四舍五入,返回与输入的实数最接近的整数,在这里0.5会被舍而不是入,如4.5会被舍到4,4.51才会被入到5 | 
4)随机数
| 随机数 | 
   返回值 | 
| rand(x) | 返回在0-x间的实数,使用白噪声生成器生成 | 
| randn(x) | 返回高斯随机数,x为标准差 | 
5)指数函数与对数函数
| 对数函数 | 返回值 | 
| exp(x) | 指数函数 exp(x) = ex | 
| ln(x) | 以e为底的对数(自然对数) | 
| log10(x) | 以10为底的对数(常用对数) | 
| log2(x) | 
   以2为底的对数 | 
  
6)其他函数
| 其他函数 | 返回值 | 
| abs(x) | 绝对值 | 
| bin(x) | 将二进制数字转换为十进制 | 
| fac(x) | 计算阶乘 | 
| sqrt(x) | 计算算术平方根 | 
  
Diagram Designer可以解一些最简单的方程,方法如下:
| 函数 | 说明 | 
| num.Guess | 用于猜测方程的解,单独使用时无意义,默认值为 0.500000001 | 
| num.argmin(expression,x) | num.argmin(f(x),x),获取函数 f(x)=expression 的最小值,如 num.argmin((x-1)*(x-1)+4,x) 的值是 1.000000001 | 
| num.min(expression,x) | num.min(f(x), x),获取函数 f(x)=expression 在取到最小值时x的取值,如 num.min((x-1)*(x-1)+4,x) 的值是 4 | 
| num.root(expression,x) | 获取方程 expression=0 在 num.Guess 附近的根,如方程 x^2+5*x+4=0,在num.Guess为0.500000001(默认值)时,num.root(x^2+5*x+4,x)返回-1,在num.Guess为6时,返回4 | 
| num.solve(equation,x) | 获取方程 equation 在 num.Guess 附近的根,如方程 x^2+5*x+5=1,在num.Guess为0.500000001(默认值)时,num.solve(x^2+5*x+5=1,x) 返回-1,在num.Guess为6时,返回4 | 
绘制函数图像要使用到plot函数,用法为:plot(expression,x)
绘制的图像是函数 f(x)=expression 的图像,输入:plot(4*x^3+3*x^2-2*x+1,x) 得到的图像为:

按下Plot窗口中的Copy(复制)按钮,在DiagramDesigner中“Ctrl+V”或鼠标右键菜单中点击“Paste”(粘贴,快捷键Shift+Ins也可以做到),就可以将这个函数的图像复制到DiagramPane上了,如下图所示:

END
Diagram Designer 的表达式求值工具(Expression Evaluator)
原文:http://my.oschina.net/Tsybius2014/blog/465829