zasdfgbnm 发表于 2009-2-8 19:37:19

【原创】使用fx-es实现简单编程

此为讨论以及成果发布贴,看不懂的见教程:
http://www.cncalc.org/thread-1625-1-1.html
一、我的发现
利用绝对值可以得出两个数中的较大的或较小的:
Max(a,b)=(a+b+|a-b|)/2
Min(a,b)=(a+b-|a-b|)/2
应用将在后文中提到
二、在多重运算中打出赋值语句
先打一个语法错误,然后往下打
例如要打1→A:2→B:3→C,可以这样打:
1.【×】(乘),【:】
2.【1】【STO】【A】出现syntax error,按【AC】【左】,输入冒号(:)
3.【2】【STO】【B】出现syntax error,按【AC】【左】,输入冒号(:)
4.【3】【STO】【C】出现syntax error,按【AC】【右】
5.按几下【DEL】删掉“×:”
此时要打出的表达式已打出
三、循环语句
以一个例子来说:
例如要计算:sin30+sin(30×2)+sin(30×3)+……+sin(30×100)要求结果用根式表示
结果用根式表示,则不能使用Σ求和,下面使用编程来实现:
首先,【1】【STO】【A】,然后输入以下表达式:
√(100-A):sin(30×A)+X→X:A+1→A
然后狂按等号(可能要按300多下)(不用始终看着屏幕),直到出现math error
程序解释:让A从1开始,累加到100,当A大于100时,第一个式子无意义,会出现math error,终止运行,这正是我们想要的现象(不用始终盯着屏幕看A是否超过100,当A达到100时自动中止)
最后,X中的结果就是想要的结果
评:第一个式子√(100-A)的应用,巧妙地设置了循环中止条件,我们可以在狂按等号时不必始终看着屏幕,而让循环自动终止,节约了人力
四、条件语句的部分实现(本人发现的应用)
还是以一个例子来说:
例1.若A大于B则将A赋值给B
可以输入如下表达式:(A+B+|A-B|)/2→B
解释:(A+B+|A-B|)/2得到的结果是A与B中较大的。(为了简便,以后记做Max(A,B))
例2.若A小于B则将A赋值给B
Min(A,B)→B
例3.若A大于B则将A赋值给C,否则将B赋值给C
Max(A,B)→C
条件语句的完整实现方法已发现(37楼)

zasdfgbnm 发表于 2009-2-8 19:42:59

另外Max(a,b,c)可以利用Max(a,b,c)=Max(a,Max(b,c))来实现

hy883835 发表于 2009-2-8 20:24:53

看不懂啊...要进异常模式吗?

zasdfgbnm 发表于 2009-2-9 07:40:24

不用进,编程是利用计算器的“:”来实现的
=====================================================================
当计算器中输入几个表达式并用冒号隔开,不断按等号键就会不断重复执行这几个表达式。
你可以在计算其上输入1+1:1+2然后不断按等号试试看会是什么效果。如果把1+1换成A+1→A你在试试会是什么效果。编程利用的就是这种效果。

ROChina 发表于 2009-2-9 12:52:57

= =
聰明..

離逝的風 发表于 2009-2-9 17:35:26

離逝的風 发表于 2009-2-9 17:35:41

所需阅读权限 11

游侠 发表于 2009-2-10 20:12:00

牛XXXXXXX!

mxd2433991 发表于 2009-2-12 16:45:12

厉害

zasdfgbnm 发表于 2009-2-13 21:43:36

原帖由 shyc2001 于 2009-2-12 20:44 发表 http://www.cncalc.org/images/common/back.gif 终于找到志同道合的人了。。。。(附赠计算1到100平方和的方法:“((100-A)C1)^2 M+:A+1→A)这个方法的优势是把判断整合到了计算中,可以少按1*100=100次等于号(其中C为组合的C,就是说shift+除号)
好!!!!!!!!!!

zasdfgbnm 发表于 2009-2-15 08:10:47

shyc2001的方法推广
将除中断语句外的第一条语句改为:
0×中断语句+原语句,同样可以少按很多等号。如:
要计算:sin30+sin(30×2)+sin(30×3)+……+sin(30×100)要求结果用根式表示
√(100-A)×0+sin(30×A)+X→X:A+1→A

515671788 发表于 2009-2-21 20:27:21

想当年我也可以不用根号求平方根

zasdfgbnm 发表于 2009-2-22 20:40:54

说说方法

zasdfgbnm 发表于 2009-2-22 20:41:11

二分法解方程?

zasdfgbnm 发表于 2009-3-21 15:23:46

原帖由 shyc2001 于 2009-3-21 11:47 发表 http://www.cncalc.org/images/common/back.gif 算根2: 1.1= 2.Ans^(-1)+2 3.反复等于 4.得数不变后-1 数学推导方法略,自己去研究高等数学吧是用泰勒级数吗?我现在上高中。

猫大头 发表于 2009-3-21 22:54:50

那个判断句太强了:lol

terranisbest 发表于 2009-3-24 13:35:33

太牛了!!!!

ldf921 发表于 2009-3-27 22:04:49

有While语句的风范了

天青色De_F 发表于 2009-3-28 01:20:43

很nb!!!!!!!!

zasdfgbnm 发表于 2009-4-4 16:54:02

新发现又少按了n个等号:
原理:
Pol(x,y)将直角坐标转换成极坐标,其结果r是存在X里,θ存在存储器Y里,Rec(r,θ)将极坐标转换成直角坐标,其结果X存在X里,Y存在Y里,也就是说,执行这两个函数会进行赋值操作(而且同事进行两个!),于是可以将赋值语句集成到这两个函数中。先看看一下例子的效果吧:
例四:首先赋值1→X;1→Y。
然后输入:
Rec(Pol(X+1,Y+2),Y)
不断按等号
这样,上文中的例子sin30+sin(30×2)+sin(30×3)+……+sin(30×100)就有了新的打法:
法1:
(√(100-Y))×0+Rec(Pol(sin(30×Y)+X,Y+1),Y)
法2:
(√(100-Y))×0+Rec(Pol(sin(30×Y)+X,Y),Y)×0+Y+1→Y
使用新的方法都只要按n下等号就可以了。
页: [1] 2 3
查看完整版本: 【原创】使用fx-es实现简单编程