最新版介绍在这里
介绍
个人设计的一个表达式计算器,支持以下功能
- 带关系运算和逻辑运算的数学表达式解析与计算
- 支持常见数学函数
- 表达式带变量运算,变量赋值运算
- 支持简单求导(实现十分简单,所以支持的函数很少,但很多函数可以使用伪求导),定积分求值等运算
- 简单逻辑表达式的解析与计算
- 绘制函数图象
- 打印真值表
- 使用编程方式进行一些复杂运算
系统要求:Windows 10 秋季创意者更新(16299)
制作目的为对已学习知识的实践,以使用的方便灵活为主要目标。
由于制作时间短,本程序仍存在不少Bug,详情请见备注。
目前版本仍为测试版本,稳定性不足,还请注意程序得到的结果是否正确。
如果您想反馈Bug,我是非常欢迎的,邮箱为 stardustdl@outlook.com
但由于是个人业余开发者,更新周期不定,Bug修复时间不定。
外观
数学表达式
逻辑表达式
函数绘图
编程页面
下载在这里
以下为使用说明。
iExpr 使用说明
- 本说明版本:2017.12.9
- 适用软件版本:iExpr 1.3 (很快就会发布,请关注软件设置页的版本信息)
- 下载在这里
界面介绍
iExpr 分为四个页面,分别为数学表达式,逻辑表达式,数学表达式图像,编程页面。
表达式页面头部有表达式编辑框(回车解析,Esc取消运算),其下有两栏,
- 第一栏会显示表达式计算结果(如果解析失败也会将提示信息显示在这里)。
- 第二栏会显示表达式解析结果,可以在这里检查系统解析的表达式是否符合预期。
表达式页面主体部分会提供相关扩展功能。
您切换页面时原页面中的信息会被清空,所以请保留好您需要的信息(如输入表达式)。
表达式 基本语法
()
小括号用于区分优先级与包围函数参数
@"abc"
表示其中的内容(abc)为一个整体,常用来表示预定义常量(不同表达式系统中可能有不同的预定义常量表示),有时也用于被运算者独立解析的函数参数或指定变量名。
F(arg1,arg2,...)
函数格式(F
在这里包含自定义的函数以及 Lambda 表达式,关于自定义的函数 具体请见编程部分)。注:函数的运算优先级最高
a b c d
表达式支持变量表示,首字符不为数字或运算符(函数)关键字的一般都会解析为变量,但仍强烈建议使用纯字母或字母+数字的方式表示变量。
(v1,v2,...)=>(expr)
Lambda 表达式,可以理解为自己定义的一个自变量为 v1,v2,v3,… 的函数
x.func(args)
调用函数,对于部分支持前置参数的函数,可以这样调用,其等价于 func(x,args)
集合类型表示
[1,2,a^2,5]
列表,用 []
包围表示这是一个列表,其中元素以 ,
分隔
{1,2,a^2,5}
无序不重集合,用 {}
包围表示这是一个集合,其中元素以 ,
分隔
(1,2,a^2,5)
定长元组,用 ()
包围表示这是一个元组,其中元素以 ,
分隔
基础表达式系统
为各表达式系统的基础
运算符
=>
Lambda 表达式定义.
层级调用
函数
list(l1,l2,...)
生成列表,参数中的单层集合会被展开。
tuple(l1,l2,...)
生成元组,参数中的单层集合会被展开。
set(l1,l2,...)
生成集合,参数中的单层集合会被展开。
len(l1,l2,...)
统计元素数目,参数中的单层集合会被展开。
val(l,index)
获取列表 l
中的第 index
项(从0开始计数)
val(l,index,newval)
将列表 l
中的第 index
项(从0开始计数)设为 newval
数学表达式系统
以下变量除特殊标明外都默认为实数类型。
基本部分
运算符(优先级从低到高)
+
加-
减,包含取负,注意这里优先级较低,使用x^-1时请写成x^(-1)*
乘/
除%
取模^
指数
函数
sin(x)
正弦函数cos(x)
余弦函数tan(x)
正切函数arcsin(x)
反正弦函数arccos(x)
反余弦函数arctan(x)
反正切函数log(base,val)
对数ln(val)
自然对数abs(x)
绝对值round(x)
舍入到最精确的整数ceil(x)
大于等于x的最小整数floor(x)
小于等于x的最小整数exp(x)
e的幂次sign(x)
x的符号
常量值
e
自然对数的底数pi
圆周率
扩展部分
运算符
这里主要扩展了关系运算和简单逻辑运算,它们的结果为0或1。
|
或&
且==
相等!=
不等>
大于<
小于>=
大于等于<=
小于等于
函数
eval(expr,v1,v2,...)
将expr中的变量按给出的值依次赋值(字典序),然后求值
sum(expr,l,r)