宏算算式语法
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结构方式。关于条件与分支计算的详细用法请参考宏算算式的条件与分支。
宏算算式的执行过程
宏算算式的典型执行过程如下:
- 生成界面 宏算程序综合分析计算部分和修饰部分,确定输入输出参数等,生成界面。
- 获取输入 用户输入数据并点击“确定”,输入参数被校验,之后所有输入参数被转成数值形式。
- 进行计算 依次执行计算部分中的每一步算式。(还可通过远程请求的方式在服务器端执行本步骤)
- 输出结果 前一步骤中被赋值的输出参数会被显示出来。本步骤会根据输出参数的类型将数值形式转为显示形式。 另外,若某个结论文本的条件被满足,该结论文本也会被显示出来。
宏算算式对富文本的支持
宏算文本扩展是类似于论坛代码的标签。使用它们可以在普通文本中嵌入电话号码、邮箱等信息,用户即可通过点击来拨打电话、发邮件等。
可在以下位置的文本中使用宏算文本扩展:
- 宏算界面上部的说明文本
- 宏算界面底部的脚注文本
- 宏算界面处理结果中的结论文本
关于宏算文本扩展的详细用法请参考宏算文本扩展。
宏算算式示例
以下文章通过示例详细讲解了宏算算式的用法。
- 宏算算式初级示例:折扣价格计算器 适合作为第一篇入门文章来阅读
- 宏算算式高级示例:日期计算器 可以进一步了解宏算算式的高级用法
参考资料汇总
宏算算式的主要规范包括:运算符、常量与函数、条件与分支、修饰器,和文本扩展。