cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 6266|回复: 1

HP 50g计算器,User RPL 编程入门 白菜级

[复制链接]
发表于 2013-8-30 00:27:20 | 显示全部楼层 |阅读模式
本帖最后由 hpcalc 于 2013-8-30 00:55 编辑

HP计算器最基本的编程语言是User RPL,这是一种基于RPN(RPN入门)的语言,使用简单方便,居家旅行必备。

编程的基本方式是把程序放在《》(书名号)中。没有单独的编程界面,直接输入到平常的计算输入框中。

如果只想执行一次,可以输入后直接按EVAL。如果想保存程序以便以后执行,可以按回车,然后输入‘程序名’,再按回车,按STO,完成保存。按VAR可以调出程序。

这里以如下例子做说明。

normal-dist2.jpeg
这是标准正态密度函数,已知x,在HP 50g上可以用 UTPN (0,1,x) 求得以x为分位点的分布值,UTPN 中的(0,1)代表均值为0,方差为1,也就是标准分布。求出的分布值是红圈中黄色部分的面积占总面积的比例。但是我们想知道图中蓝色区域的面积占多少百分比。可以用(0.5 - UTPN(0,1,x))*2*100来算。但如果每次都这么输入的话太麻烦了,所以编程派上了用场。

在RPN输入时,首先输入 0 1 x 三个数给 UTPN 作参数,然后取反,加0.5,乘以2再乘以100。手工运算时键入顺序如下,0  1  x  UTPN    +/-     .5    +   2  *  100  *


我们希望只输入x的值,然后运行程序就能得到结果。最简单的User RPL编程,基本上把上面手工输入的键全部抄上就可以了,只有稍许差别,如下:
《 0. 1. ROT UTPN NEG .5 + 2 * 100 * 》

nd1.jpeg

其中ROT代表堆栈转圈操作,就是将3号堆栈的值放入1号,将1号的值放入2号,2号的值放入3号。因为我们输入x后运行程序,程序将按照其中的命令依次执行,运行完 0  1后,x将会被压到3号堆栈,堆栈将变成 3号:x    2号:0    1号:1,而UTPN函数需要的的是 0 1 x,所以用ROT转一下。 NEG表示取反,其余跟手工输入没有区别,因为堆栈的方便性,也不用变量赋值代码和专门的输入输出代码。最后打个回车,输入'ND',按STO保存起来。

按VAR调出变量菜单,可以发现程序名ND出现在其中(左下角),这个菜单对应菜单键F1。

在50g中,User RPL程序被认为是变量,这种处理方式有独特的好处。例如如果不需要结果表示为百分数了,而需要正常的小数表示,那么只要编一个程序,内容是《nd 100 /》,而不用重新写一个《 0. 1. ROT UTPN NEG .5 + 2  》。同样按照需要也可以衍生出《nd sin()》(对x运行nd后的值再求正弦) , 《 nd + 》(将nd程序求得的值和某数相加,比如输入 200 回车 3,这个《nd +》程序将会把3运行nd后的值加200,因为先把3作为参数给nd求值,并将返回值压入1号堆栈,然后加号把nd运算后的值和2号堆栈中的200相加。),非常方便易写。

按  1  F1  后算出正态分布中,小于1个标准差的概率大约是68.27
3.JPG

按  1.96  F1 后的计算结果。
4.JPG

按  2.58  F1后的计算结果
5.JPG

对照图片验证一下

03.gif

发表于 2013-8-30 00:37:14 | 显示全部楼层
RPL在prime上已经废掉了,应急一下还好,系统化学习价值不大,还不如搞HPGCC
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-24 05:51 , Processed in 0.049653 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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