动画计算器
运算能力章节运算能力
- 基础运算:支持
+-*/四则运算,遵循标准优先级(先乘除后加减)。 - 幂运算:使用
^符号表示乘方,优先级高于乘除,右结合(如2^3^2=2^(3^2))。 - 括号支持:允许任意嵌套的
()括号,改变运算顺序。 - 负数处理:支持负号直接输入(如
5+-3解析为 5 + (-3)),也支持负数作为表达式起始。 - 缩写输入:小数点前后可省略 0(如输入
.5自动补全为0.5)。
交互体验章节交互体验
- 按键输入:提供数字键
0-9、小数点.、运算符+-*/^、括号()、退格<、清空AC、等于=。 - 光标操作:
- 支持
←→移动光标,可在表达式任意位置插入/删除。 - 光标移动带有非线性缓动动画,视觉反馈柔和。
- 支持
- 长按支持:退格键长按可连续快速删除;数字和运算符长按可重复输入。
- 动效要求:所有按键按下时有缩放反馈;光标移动具有缓动效果。
核心算法实现章节核心算法实现
解析策略采用 递归下降 + 结果栈解析表达式字符串。
- 词法分析:将输入字符串拆解为 Token(数字、运算符、括号、负号标记)。
- 数值计算:树形遍历Token,执行运算。遇到除零、NaN、无穷大等异常时,停止递归并抛出错误。
- 回溯机制:若计算过程中某节点失败,则向上回溯,将整个表达式标记为无效,并清空栈顶中间结果。
- 最终输出:成功解析且无错误时,栈顶即为最终计算结果;否则反馈错误信息。
错误处理与用户反馈章节错误处理与用户反馈
- 实时检查:输入时动态显示错误消息。
- 计算错误提示:语法错误如括号不匹配、Token解析错误,数字格式错误分别显示不同消息。
NaN:针对常见除0,Infinity加减除等运算错误自动识别。
截图章节截图
