【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
今天看了下 Microsoft Windows Logo(下文简称MSWLogo)与数学有关的函数,对比了下.NET4.0提供的基础数学函数库(System.Math,在动态库文件mscorlib.dll内实现),计划写篇文章总结并补充了部分命令。
一、System.Math 中有且 MSWLogo 也有的函数
- Abs( MSWLogo中为ABS):求绝对值
- Acos( MSWLogo中为ARCCOS):求反余弦
- Asin(MSWLogo中为ARCSIN):求反正弦
- Atan( MSWLogo中为ARCTAN) :求反正切
- Cos ( MSWLogo中为COS) :求余弦
- Exp( MSWLogo中为EXP) :求e的指定次幂
- Floor( MSWLogo中为INT):求不大于当前数字的最大的整数
- Log( MSWLogo中为LN):求以e为底的对数
- Log10( MSWLogo中为LOG10) :求以10为底的对手
- Pow( MSWLogo中为POWER) :求幂
- Round( MSWLogo中为ROUND) :对指定数字四舍五入
- Sin( MSWLogo中为ROUND) :求正弦
- Sqrt( MSWLogo中为SQRT) :开平方
- Tan( MSWLogo中为TAN) :求正切
二、 MSWLogo 特有的函数
- DIFFERENCE:求两数差
- MINUS:取相反数
- PRODUCT:求两数积
- QUOTIENT:求两数商
- RADARCTAN:求反正切(传入角度数)
- RADCOS:求余弦(传入角度数)
- RADSIN:求正弦(传入角度数)
- REMAINDER:求两数相除后的余数
- SUM:求两数和
三、System.Math中有但MSWLogo中没有,或二者都没有的函数
这些函数需要我们自己实现:
- ARCCOT:求反余切
- ARCCSC:求反余割
- ARCSEC:求反正割
- CEILING:求不小于当前数字的最小整数
- COT:求余切
- COTH:求双曲余切
- COSH:求双曲余弦
- CSC:求余割
- CSCH:求双曲余割
- MAX:取两数中大者
- MIN:取两数中小者
- SEC:求正割
- SECH:求双曲正割
- SIGN:符号函数(正数返回1,负数返回-1,0返回0)
- SINH:求双曲正弦
- TANH:求双曲正切
- TRUNCATE:去除指定数字小数部分
实现代码如下:
TO ARCCOT :NUM
OUTPUT CONST_PI / 2 - (ARCTAN :NUM)
END
TO ARCCSC :NUM
OUTPUT ARCSIN(1 / :NUM)
END
TO ARCSEC :NUM
OUTPUT ARCCOS(1 / :NUM)
END
TO CEILING :NUM
OUTPUT ROUND (:NUM + 0.5 - 0.0000000000001)
END
TO COSH :NUM
OUTPUT ((EXP :NUM) + (EXP (MINUS :NUM))) / 2
END
TO COT :NUM
OUTPUT 1 / (TAN :NUM)
END
TO COTH :NUM
OUTPUT 1 / (TANH :NUM)
END
TO CSC :NUM
OUTPUT 1 / (SIN :NUM)
END
TO CSCH :NUM
OUTPUT 1 / (SINH :NUM)
END
TO MAX :NUM1 :NUM2
TEST :NUM1 > :NUM2
IFTRUE [OUTPUT :NUM1]
IFFALSE [OUTPUT :NUM2]
END
TO MIN :NUM1 :NUM2
TEST :NUM1 < :NUM2
IFTRUE [OUTPUT :NUM1]
IFFALSE [OUTPUT :NUM2]
END
TO SEC :NUM
OUTPUT 1 / (COS :NUM)
END
TO SECH :NUM
OUTPUT 1 / (COSH :NUM)
END
TO SIGN :NUM
IF :NUM > 0 [OUTPUT 1]
IF :NUM = 0 [OUTPUT 0]
IF :NUM < 0 [OUTPUT -1]
END
TO SINH :NUM
OUTPUT ((EXP :NUM) - (EXP (MINUS :NUM))) / 2
END
TO TANH :NUM
OUTPUT (SINH :NUM) / (COSH :NUM)
END
TO TRUNCATE :NUM
TEST OR :NUM > 0 :NUM = 0
IFTRUE [OUTPUT (INT :NUM)]
IFFALSE [OUTPUT (CEILING :NUM)]
END
END
来源:oschina
链接:https://my.oschina.net/u/1425762/blog/702912