Skip to content
This repository has been archived by the owner on Jan 11, 2018. It is now read-only.

polossk/ExpressionRunner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ExpressionRunner

主要实现功能:

  1. 基础表达式的计算,实现了加减乘除乘方和带括号运算
  2. 实现了自己添加变量,并且可以让自己添加的变量参与运算
  3. 添加5个默认变量,圆周率PI,自然对数EXP,无穷大inf,非数(Not a Number)nan,以及上一次运算的结果Ans
  4. 可以让inf与nan参与运算,但是会提示警告并返回相应数值
  5. 添加了6个针对自定义变量的命令,分别是全部显示ls,显示一个变量cat,复制变量cp,删除变量mv,重命名变量rm,清空所有自建变量cls

用法:

  1. 表达式计算部分:
    1. 表达式的风格尽量与常用的编程语言中的表达式风格一致;
    2. 输入一个合法的表达式(甚至是一个数据都可以)将会自动计算并且显示结果;
    3. 目前仅支持5个运算符:加+,减-,乘*,除/,乘方^
    4. 允许带括号运算,但是多重括号嵌套时仍然只能用小括号()
    5. 允许带自定义变量运算,比如输入PI * 2 * 2,会认为是一个合法表达式并计算;
    6. 使用赋值运算符:=(向经典的Pascal致敬!)是主要的新加变量的方式,具体用法是,运算符左边是新添加的变量名,右边是一个表达式,系统会把这个表达式的值计算出来,然后赋值给新建的变量;
    7. 不允许嵌套新建变量,诸如a:=a+1,因为系统当前并没有名为a的变量;
    8. 允许自身重赋值,比如a:=a+1,如果实现定义了a的值,系统将正确计算;
  2. 自定义变量部分:
    1. 清空自定义变量命令cls

      • 语法:cls
      • 直接输入即可,系统会自行删除所有的用户的自定义变量
      • 作为系统自带的4个保留变量(不包含Ans)将被保留
    2. 检查所有变量命令ls

      • 语法:ls
      • 直接输入即可,系统会把所有的变量全部打印到屏幕上
    3. 检查单一变量命令cat

      • 语法:cat <Name>
      • 输入后,系统会查询名为<Name>的变量,如果有则打印到屏幕上
      • 对于一些名称简单的变量可以直接输入变量名,同样也会显示其值
    4. 复制一个变量命令cp

      • 语法:cp <Name1> <Name2>
      • 输入后,系统会把<Name1>的值(如果存在)赋值给<Name2>
      • 如果名为<Name2>的变量已经存在,那么会导致修改失败
    5. 删除一个变量命令rm

      • 语法:rm <Name>
      • 输入后,系统会查询名为<Name>的变量,如果有则删除之
      • 该命令也可以删除系统保留变量
    6. 重命名一个变量命令mv

      • 语法:mv <Name1> <Name2>
      • 输入后,系统会将名为<Name1>的变量的名字修改为<Name2>
      • 如果名为<Name2>的变量已经存在,那么会导致修改失败
    7. 注意事项

      • 虽然实际上,这几个命令相当于系统保留字,是不允许作为变量使用的,但实际上却有特殊的使用技巧,那就是通过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 
      >>> 
      
  3. 全局操作:
    1. 关闭命令exit
      • 语法:exit
      • 直接输入即可,随后将关闭该程序
    2. 也可以通过输入EOF标志(键盘中是Ctrl + ZF6键)关闭该程序

常见错误:

  1. 忘记输入后括号:(1+5*(2+3)*2
  2. 输入了错误的运算符:2%5
  3. 忘记输入赋值运算符的冒号:sum=1+2+3+4+5
  4. 命令后面跟了太多的参数:cp avg sum solved.
  5. 其他的错误命令等等。

如果有更好的建议,或者发现了Bug,请联系我[email protected]