cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 2695|回复: 7

新函数发布

[复制链接]
发表于 2010-3-31 12:22:31 | 显示全部楼层 |阅读模式
函数实现方法输出值缺陷
s_1(x)-sgn(-x-10^-80)若x>0则为1,否则为-10<x<10^-80时失效
s_2(x)sgn(x+10^-80)若x≥0则为1,否则为-1-10^-80<x<0时失效
条件分支结构的实现:
if(x>y) then
    a = b;
else
    a = c;
endif
计算器语言:
a + 0.5(b - a) (1+s_1(x-y))+0.5(c - a)(1 - s_1(x-y)) → a
if(x≥y) then
    a = b;
else
    a = c;
endif
计算器语言:
a + 0.5(b - a) (1+s_2(x-y))+0.5(c - a)(1 - s_2(x-y)) → a
注:
以上if - else -双选择的单语句实现,是由991es82es发现的方法改进而来
发表于 2010-4-2 20:55:00 | 显示全部楼层
这种函数可以用If then Else IfEnd/EndIf呀
 楼主| 发表于 2010-4-3 09:04:33 | 显示全部楼层
这种函数可以用If then Else IfEnd/EndIf呀
[Diamond OA] 发表于 2010-4-2 20:55

没看懂你什么意思~
我是看ispositive太复杂而提出来的if else endif的改进,由于ispositive已被hcz精简,一楼的条件分支的精简已经失去了实际意义,因为现在的ispositive更简单
发表于 2010-4-3 12:34:14 | 显示全部楼层
If a=1
Then goto 1
Else goto 2
IfEnd
Lbl 1
...
Lbl 2
..

或者 a=1 =>goto 1
        a=2 =>goto 2
        Lbl 1
        ...
        Lbl 2
        ...
 楼主| 发表于 2010-4-3 12:54:47 | 显示全部楼层
ES要是有goto就好了。。。
发表于 2010-4-5 09:42:29 | 显示全部楼层
呵呵~
发表于 2010-4-5 17:34:58 | 显示全部楼层
ES有Goto的
比如输入1/0,按一下等号,左右键对应的就是Goto
发表于 2010-4-5 17:46:04 | 显示全部楼层
但是不能从一个语句的中间执行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-12-22 20:22 , Processed in 0.076010 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表