宏算算式语法

2019-04-19 21:30:39 NUMKIT.COM  欢迎转载,转载请注明出处

宏算在普通数学算式的基础上添加了扩展语法,设计了宏算算式。 使用宏算算式生成的用户界面可含有丰富的界面元素,且可实现更多高级功能,例如:按条件计算、得出文字结果、查询远程服务器等。

以下是一个宏算算式的实例:

option{title:"日期计算器";comment:"本计算器能计算出从特定日期向后或向前数指定天数后的日期。";}
input{i:"开始日期";t:"计算方式";n:"天数";}
output{o:"结束日期";}
view{i:Date;t:"<请选择>","向后数日","向前数日";n:Integer;o:Date;}
validate{alert:[t!=1 and t!=2,"请选择计算方式"][n<0,"天数不能小于0"];}
default{i:toDate(now());t:1;}

if(t==1){
	o=i+n*24*3600*1000;
}
if(t==2){
	o=i-n*24*3600*1000;
}

使用宏算处理这个宏算算式后,可得到以下界面:

您可以通过在线计算手机宏算处理宏算算式得到界面。 您还可以登录宏算账户,将宏算算式生成的界面保存为“我创建的”,生成公共链接,甚至发布到算式知识库供其他人使用。

宏算算式基于数学算式

简单的数学算式也可以被视作宏算算式。关于简单数学算式的语法规范请参考宏算简单编程计算。 同时,宏算算式支持的运算符、常量与函数也和“宏算简单编程计算”所支持的一致。 详见宏算支持的运算符宏算支持的常量与函数

宏算算式的语法结构

宏算算式由计算部分和修饰部分组成。其中计算部分用于描述计算步骤;修饰部分用于控制生成的界面细节。 这两部分可以以任意顺序出现:修饰部分可以在计算部分之前,也可以在计算部分之后。 宏算算式可以没有修饰部分,也可以没有计算部分,但是不能两者都没有。

上文中的宏算算式实例中,绿色文字为修饰部分,红色文字为计算部分。

修饰部分由若干修饰器构成。单个修饰器的格式为:

<修饰器名>{
	<属性名1>:<属性值1>;
	<属性名2>:<属性值2>;
}

不同修饰器的作用各不相同。例如,修饰器input用于控制界面中输入参数的标签及显示顺序、 修饰器output用于控制界面中输出参数的标签及显示顺序、修饰器view用于控制界面中各种参数的显示方式、 修饰器validate用于验证用户输入的参数值是否有效、修饰器default用于控制界面中各种输入参数的默认值。 关于所有修饰器的详细用法请参考宏算定义的修饰器

计算部分可以使用两种方式实现条件分支计算:一种是通过条件相关函数实现,另一种是通过If-Else结构实现。 上文中的宏算算式实例采用的是If-Else结构方式。关于条件与分支计算的详细用法请参考宏算算式的条件与分支

宏算算式的执行过程

宏算算式的典型执行过程如下:

  1. 生成界面 宏算程序综合分析计算部分和修饰部分,确定输入输出参数等,生成界面。
  2. 获取输入 用户输入数据并点击“确定”,输入参数被校验,之后所有输入参数被转成数值形式。
  3. 进行计算 依次执行计算部分中的每一步算式。(还可通过远程请求的方式在服务器端执行本步骤)
  4. 输出结果 前一步骤中被赋值的输出参数会被显示出来。本步骤会根据输出参数的类型将数值形式转为显示形式。 另外,若某个结论文本的条件被满足,该结论文本也会被显示出来。

宏算算式对富文本的支持

宏算文本扩展是类似于论坛代码的标签。使用它们可以在普通文本中嵌入电话号码、邮箱等信息,用户即可通过点击来拨打电话、发邮件等。

可在以下位置的文本中使用宏算文本扩展:

  • 宏算界面上部的说明文本
  • 宏算界面底部的脚注文本
  • 宏算界面处理结果中的结论文本

关于宏算文本扩展的详细用法请参考宏算文本扩展

宏算算式示例

以下文章通过示例详细讲解了宏算算式的用法。

参考资料汇总

宏算算式的主要规范包括:运算符、常量与函数、条件与分支、修饰器,和文本扩展。