hpcalc 发表于 2013-8-30 00:27:20

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

本帖最后由 hpcalc 于 2013-8-30 00:55 编辑

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

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

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

这里以如下例子做说明。


这是标准正态密度函数,已知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。手工运算时键入顺序如下,01xUTPN    +/-   .5    +   2*100*


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



其中ROT代表堆栈转圈操作,就是将3号堆栈的值放入1号,将1号的值放入2号,2号的值放入3号。因为我们输入x后运行程序,程序将按照其中的命令依次执行,运行完 01后,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相加。),非常方便易写。

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


按1.96F1 后的计算结果。


按2.58F1后的计算结果


对照图片验证一下



airfox 发表于 2013-8-30 00:37:14

RPL在prime上已经废掉了,应急一下还好,系统化学习价值不大,还不如搞HPGCC
页: [1]
查看完整版本: HP 50g计算器,User RPL 编程入门 白菜级