- 基础表达式的计算,实现了加减乘除乘方和带括号运算
- 实现了自己添加变量,并且可以让自己添加的变量参与运算
- 添加5个默认变量,圆周率PI,自然对数EXP,无穷大inf,非数(Not a Number)nan,以及上一次运算的结果Ans
- 可以让inf与nan参与运算,但是会提示警告并返回相应数值
- 添加了6个针对自定义变量的命令,分别是全部显示ls,显示一个变量cat,复制变量cp,删除变量mv,重命名变量rm,清空所有自建变量cls
- 表达式计算部分:
- 表达式的风格尽量与常用的编程语言中的表达式风格一致;
- 输入一个合法的表达式(甚至是一个数据都可以)将会自动计算并且显示结果;
- 目前仅支持5个运算符:加
+
,减-
,乘*
,除/
,乘方^
; - 允许带括号运算,但是多重括号嵌套时仍然只能用小括号
()
; - 允许带自定义变量运算,比如输入
PI * 2 * 2
,会认为是一个合法表达式并计算; - 使用赋值运算符
:=
(向经典的Pascal致敬!)是主要的新加变量的方式,具体用法是,运算符左边是新添加的变量名,右边是一个表达式,系统会把这个表达式的值计算出来,然后赋值给新建的变量; - 不允许嵌套新建变量,诸如
a:=a+1
,因为系统当前并没有名为a
的变量; - 允许自身重赋值,比如
a:=a+1
,如果实现定义了a
的值,系统将正确计算;
- 自定义变量部分:
-
清空自定义变量命令
cls
- 语法:
cls
- 直接输入即可,系统会自行删除所有的用户的自定义变量
- 作为系统自带的4个保留变量(不包含Ans)将被保留
- 语法:
-
检查所有变量命令
ls
- 语法:
ls
- 直接输入即可,系统会把所有的变量全部打印到屏幕上
- 语法:
-
检查单一变量命令
cat
- 语法:
cat <Name>
- 输入后,系统会查询名为
<Name>
的变量,如果有则打印到屏幕上 - 对于一些名称简单的变量可以直接输入变量名,同样也会显示其值
- 语法:
-
复制一个变量命令
cp
- 语法:
cp <Name1> <Name2>
- 输入后,系统会把
<Name1>
的值(如果存在)赋值给<Name2>
- 如果名为
<Name2>
的变量已经存在,那么会导致修改失败
- 语法:
-
删除一个变量命令
rm
- 语法:
rm <Name>
- 输入后,系统会查询名为
<Name>
的变量,如果有则删除之 - 该命令也可以删除系统保留变量
- 语法:
-
重命名一个变量命令
mv
- 语法:
mv <Name1> <Name2>
- 输入后,系统会将名为
<Name1>
的变量的名字修改为<Name2>
- 如果名为
<Name2>
的变量已经存在,那么会导致修改失败
- 语法:
-
注意事项
- 虽然实际上,这几个命令相当于系统保留字,是不允许作为变量使用的,但实际上却有特殊的使用技巧,那就是通过cp复制命令给一个有着特殊变量名的变量赋值并计算。如果需要将其作为变量计算,请将其尽量放置在表达式后部,不要让表达式和命令行命令产生歧义即可。如图所示的输入就是合法的一个尝试:
>>> 5 + 1 5 + 1 = 6 >>> cp Ans cp >>> cat cp cp = 6 >>> 5 + cp 5 + cp = 11 >>>
- 变量名的命名规则为,首字母不为数字的一个仅包含数字和大小写字母的一个字符串。如图所示即为一些简单的变量及其参与的运算:
>>> a1 := 2 >>> a2 := 3 >>> a1 + a2 a1 + a2 = 5 >>>
-
- 全局操作:
- 关闭命令
exit
- 语法:
exit
- 直接输入即可,随后将关闭该程序
- 语法:
- 也可以通过输入
EOF
标志(键盘中是Ctrl + Z
或F6
键)关闭该程序
- 关闭命令
- 忘记输入后括号:
(1+5*(2+3)*2
- 输入了错误的运算符:
2%5
- 忘记输入赋值运算符的冒号:
sum=1+2+3+4+5
- 命令后面跟了太多的参数:
cp avg sum solved
. - 其他的错误命令等等。
如果有更好的建议,或者发现了Bug,请联系我[email protected]