cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 11481|回复: 21

系统RPL编程初步教学

[复制链接]
发表于 2018-10-8 20:58:12 | 显示全部楼层 |阅读模式
本帖为密码帖 ,请输入密码 
 楼主| 发表于 2018-10-9 20:51:33 | 显示全部楼层
本帖为密码帖 ,请输入密码 
 楼主| 发表于 2018-10-10 20:01:28 | 显示全部楼层
本帖最后由 aswed 于 2018-10-25 15:41 编辑

局部变量(local variables)

或者叫临时变量或者叫lambda变量。可以把程序运行过程中的临时数据存到这些变量中。用的时候调出来参与计算。程序运行结束就没有了。
下面是一个程序例子。建立两个局部变量。
  1. ::
  2. %2 %3
  3. {
  4.   LAM first
  5.   LAM sec
  6. }
  7. BIND
  8. LAM first
  9. LAM sec
  10. DUP
  11. ' LAM first
  12. STO
  13. %+
  14. ' LAM sec
  15. STO
  16. ABND
  17. ;
复制代码
这个程序运行完了之后。什么也没有显示。但是在运行过程中进行了一系列的操作。
下面逐行解释这个程序的意思。
%2 %3 输入实数2和实数3。大括号里面 LAM first 是建立名字为first的局量变量。LAM sec 建立名字为sec的局部变量。
BIND是把这两个变量名和前面输入的两个数字绑定。按顺序来绑定。LAM first绑定的是排在前面的实数2,LAM sec绑定的是后面的实数3。
LAM first把绑定的实数2调出来。LAM sec把实数3调出来。DUP命令把LAM sec调出来实数3再复制一个。' LAM first注意前面有一个单引号。表示调出来的局部变量的名称,而不是里面存储的数值。STO命令把实数3存到LAM first这个名字里面。以后再调LAM first它就不是原来存储的数值实数2,而是新存数值的实数3。
STO命令之后,复制的实数3消失了。剩下前面LAM first调出来实数2,和LAM sec调出来实数3。%+实数相加命令把这两个数相加。得出结果实数5。然后' LAM sec调出第二个局部变量的名字。下面一个命令STO把数值5存到这个变量名里面。
最后ABND命令解除绑定。两个临时变量都被清除了。腾出了计算器的内存空间。

first和sec是临时变量名,自己随便用什么名称都可以。绑定和调用的时候前面要加LAM和一个空格。表示这是一个临时变量。不能直接用名字来调用。
BIND绑定命令和ABND命令成对出现。可以多次使用BIND绑定临时变量。不必ABND之后再绑定。ABND解除绑定命令每次只解除最新一次BIND命令绑定的临时变量。不会影响前面BIND绑定的临时变量。如果要解除前面的绑定的临时变量就要多次使用ABND。

如果想在程序中要把计算结果存到计算器里面长久保存,就象在RPN模式下按引号给一个名字,然后按STO,把计算结果存起来怎么办?且听下回分解。


因为有事情。教学暂停一周。到下下周再开始。这个时间大家可以努力学习用户RPL编程。自已也可以看看系统RPL编程英文版的一些命令,放到程序里使用一下。
命令前面有^的。比如^ZGcd。如果输入两个整数,使用它可以得出它们的最大公约数。在程序中使用时前面要加上FPTR2和一个空格。
例子
::
24 FPTR2 ^#>Z
48 FPTR2 ^#>Z
FPTR2 ^ZGcd
;
这样才可以。如果直接使用会令到计算器出错。
24和48后面的FPTR2 ^#>Z是把这两个数分别转为整数格式。直接输入这两个数被认为是二进制整数。对二进制整数使用整数操作命令^ZGcd会令到计算器出错,需要按ON&F3重启或者戳计算器背后的reset小孔。程序运行完之后,给出24和48的最大公约数结果24。
命令前面有~的。比如~xFACTOR在程序中使用时前面要加上ROMPTR2和一个空格才能使用。前面加有~或者x的命令的作用和用户RPL程序中去掉~和x的命令的作用是一样的。比如~xFACTOR就是用户RPL中的FACTOR命令。把多项式进行因式分解;或者把整数分解为质因数相乘。

大家保存好英文版本。因为里面有各种命令的使用方和功能介绍。后面会告诉大家怎么使用和查阅这些资料。


发表于 2018-10-13 17:52:11 | 显示全部楼层
发个教学贴还要密码
发表于 2018-10-13 20:57:31 | 显示全部楼层
老师,辛苦。
发表于 2018-10-16 11:58:27 来自手机 | 显示全部楼层
艾哈迪利 发表于 2018-10-13 17:52
发个教学贴还要密码

多多洛好
 楼主| 发表于 2018-10-22 12:11:52 | 显示全部楼层
本帖为密码帖 ,请输入密码 
 楼主| 发表于 2018-10-22 12:16:12 | 显示全部楼层

同学好
 楼主| 发表于 2018-10-22 12:18:59 | 显示全部楼层
艾哈迪利 发表于 2018-10-13 17:52
发个教学贴还要密码

老师级的教学。总要增加一些难度什么才能看到。不能和普通贴子一样。
 楼主| 发表于 2018-10-23 17:19:31 | 显示全部楼层
本帖为密码帖 ,请输入密码 
 楼主| 发表于 2018-10-24 13:21:35 | 显示全部楼层
本帖为密码帖 ,请输入密码 
 楼主| 发表于 2018-10-25 01:21:19 | 显示全部楼层
本帖为密码帖 ,请输入密码 
发表于 2018-10-25 14:12:56 来自手机 | 显示全部楼层
这个够硬核的!会的人不多!
 楼主| 发表于 2018-10-29 18:38:42 | 显示全部楼层
本帖为密码帖 ,请输入密码 
 楼主| 发表于 2018-10-30 12:11:21 | 显示全部楼层
本帖为密码帖 ,请输入密码 
 楼主| 发表于 2018-10-31 13:18:08 | 显示全部楼层
本帖为密码帖 ,请输入密码 
 楼主| 发表于 2018-11-1 12:13:44 | 显示全部楼层
本帖为密码帖 ,请输入密码 
 楼主| 发表于 2018-11-5 18:27:52 | 显示全部楼层
本帖为密码帖 ,请输入密码 
 楼主| 发表于 2018-11-7 00:19:25 | 显示全部楼层
本帖为密码帖 ,请输入密码 
发表于 2020-12-30 08:21:31 | 显示全部楼层
密码是多少啊》
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-22 12:06 , Processed in 0.158291 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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