这是一款功能强大的计算器应用,支持变量赋值、复杂表达式的四则运算和乘方计算,并能正确解析嵌套括号结构。
calculator.cpp 是一个能够实现四则运算(包括乘方)、赋值及错误处理的计算器程序。该程序支持三类输入:指令、赋值语句以及计算式。
**输入规范**
- **指令**: 包括 exit, printvar 和 emptyvar 三个命令,分别用于退出程序、打印所有已定义变量及其值和清除所有变量。
- **赋值语句**: 格式为 变量名=数值。这里“数值”可以是直接的数字或计算表达式。
- **计算式**: 所有非指令与赋值的输入均视为计算式,用于进行数学运算。
**元素定义**
1. **变量名**: 必须以字母或下划线开始,并只能包含字母、数字和下划线。不能使用 exit, printvar 或 emptyvar 作为变量名称。
2. **数值类型**: 可以为整数(包括省略小数部分的输入如 .5)、浮点数或者分数形式(例如1/2)。暂不支持非十进制表示法,且单独的“.”会被视为错误而非数字0。
3. **运算符号**: 包括加号 (+), 减号 (-), 乘号 (*), 除号 (/) 和括号 ( ). 还包括幂运算 (^),但零的零次方是未定义的。
**特别说明**
- 输入时请确保使用英文字符和半角输入。
- 当一行中出现多个错误,程序只会指出第一个发现的问题。
- 程序在处理除法结果为浮点数或整数时会自动进行类型转换。例如:1/2 输出 0.5, 而 3/2 输出 1.5。
- 操作符连续使用(如 ++ 或 --)是不被允许的,除了作为数字前缀表示正负号外。
**与其他编程语言的区别**
- 程序支持 a(b+c) 和 n(x+y) 的形式,这在C/C++中被视为函数调用而非乘法。
- 对于 0^0 这种未定义的情况会给出错误提示,而标准的 C++ 库(如 cmath 中的 pow 函数)可能会返回1。