cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 26777|回复: 58

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

[复制链接]
发表于 2009-2-8 19:37:19 | 显示全部楼层 |阅读模式
此为讨论以及成果发布贴,看不懂的见教程:
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
应用将在后文中提到
二、在多重运算中打出赋值语句
先打一个语法错误,然后往下打
例如要打1A2B3C,可以这样打:
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→XA+1A
然后狂按等号(可能要按300多下)(不用始终看着屏幕),直到出现math error
程序解释:让A1开始,累加到100,当A大于100时,第一个式子无意义,会出现math error,终止运行,这正是我们想要的现象(不用始终盯着屏幕看A是否超过100,当A达到100时自动中止)
最后,X中的结果就是想要的结果
评:第一个式子√(100-A的应用,巧妙地设置了循环中止条件,我们可以在狂按等号时不必始终看着屏幕,而让循环自动终止,节约了人力
四、条件语句的部分实现(本人发现的应用)
还是以一个例子来说:
1.A大于B则将A赋值给B
可以输入如下表达式:(A+B+|A-B|)/2B
解释:(A+B+|A-B|)/2得到的结果是AB中较大的。(为了简便,以后记做Max(A,B))
2.A小于B则将A赋值给B
Min(A,B)B
3.A大于B则将A赋值给C,否则将B赋值给C
Max(A,B)C
条件语句的完整实现方法已发现(37楼)
 楼主| 发表于 2009-2-8 19:42:59 | 显示全部楼层
另外Max(a,b,c)可以利用Max(a,b,c)=Max(a,Max(b,c))来实现
发表于 2009-2-8 20:24:53 | 显示全部楼层
看不懂啊...要进异常模式吗?
 楼主| 发表于 2009-2-9 07:40:24 | 显示全部楼层
不用进,编程是利用计算器的“:”来实现的
=====================================================================
当计算器中输入几个表达式并用冒号隔开,不断按等号键就会不断重复执行这几个表达式。
你可以在计算其上输入1+1:1+2然后不断按等号试试看会是什么效果。如果把1+1换成A+1→A你在试试会是什么效果。编程利用的就是这种效果。
发表于 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!
发表于 2009-2-12 16:45:12 | 显示全部楼层
厉害
 楼主| 发表于 2009-2-13 21:43:36 | 显示全部楼层
原帖由 shyc2001 于 2009-2-12 20:44 发表 终于找到志同道合的人了。。。。(附赠计算1到100平方和的方法:“((100-A)C1)^2 M+:A+1→A)这个方法的优势是把判断整合到了计算中,可以少按1*100=100次等于号(其中C为组合的C,就是说shift+除号)

好!!!!!!!!!!
 楼主| 发表于 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→XA+1A
发表于 2009-2-21 20:27:21 | 显示全部楼层
想当年我也可以不用根号求平方根
 楼主| 发表于 2009-2-22 20:40:54 | 显示全部楼层
说说方法
 楼主| 发表于 2009-2-22 20:41:11 | 显示全部楼层
二分法解方程?
 楼主| 发表于 2009-3-21 15:23:46 | 显示全部楼层
原帖由 shyc2001 于 2009-3-21 11:47 发表 算根2: 1.1= 2.Ans^(-1)+2 3.反复等于 4.得数不变后-1 数学推导方法略,自己去研究高等数学吧  
是用泰勒级数吗?我现在上高中。
发表于 2009-3-21 22:54:50 | 显示全部楼层
那个判断句太强了:lol
发表于 2009-3-24 13:35:33 | 显示全部楼层
太牛了!!!!
发表于 2009-3-27 22:04:49 | 显示全部楼层
有While语句的风范了
发表于 2009-3-28 01:20:43 | 显示全部楼层
很nb!!!!!!!!
 楼主| 发表于 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下等号就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-22 03:21 , Processed in 0.058271 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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