TI-84编程参数

TI-84 programming parameter

是否可以在需要参数的另一个程序中执行一个程序? (没有内联)

例如

________________
 - PROGRAM:ADD
 - :Prompt A,B
 - :A+B>C
________________
 - PROGRAM:TEST
 - :For(I,0,20)
 - :Disp (prgmADD (I,I+1))
 - :End_________

显然,这与目前的方式不同,但我希望我已经阐明了我的意思。

我认为没有办法做到这一点 - 您基本上是在要求伪造用户输入,这是不受支持的。

我绕过它的方法是通过将 A 和 B 设置为 I、I+1 来预加载变量。然后有另一个你永远不会在任何程序中接触的变量,它是一个标志,让子程序知道它可以跳过输入。

当子程序运行s时,它使用一个if语句来检查标志变量。如果它被设置为您选择的特定值,它知道这意味着它不必 运行 提示命令,因为 A 和 B 已经设置。检查值后,它应该重置标志,这样当您稍后手动 运行 它不会跳过提示。

我使用的特定约定是保留系统中的最后一个列表供我的程序使用。每个程序都知道查看参数列表。这样一来,我就不必担心在程序之间匹配可变字母了。所以在这种情况下,列表的第一个元素可以是 1,表示有参数要读取。如果为 0,则使用提示。否则它会查看第二个和第三个元素以获取 A 和 B 的值。完成后会清除列表,因此剩余数据不会干扰以后的 运行s。

正如 Katie 所说,没有用于在 TI-Basic 程序之间传递参数的内置方法。但是,有一种原始方法可以将单个参数传递给函数。

未计算的表达式可以保存在 Y-VARS 变量之一中。在您的程序中使用此变量将导致计算其中包含的表达式并返回结果。有趣的是,Y-VARS 变量可以传递一个参数,该参数将替换表达式主体中的单个变量。它被替换的变量取决于您使用的 Y-VARS 变量。 Function 变量使用 XParametric 使用 TPolar 使用 θ.


此示例程序演示了我所描述的内容。

:"XLog(X→Y1
:Disp Y1(10
:Disp Y1(5

Y1作为参数传递给10时,Y1X的所有实例都被替换为10Y1 现在等同于 10log(10,或者只是 10。将 5 传递给 Y1 时会看到相同的效果。


此解决方法的明显缺点是只能传递一个参数。其他缺点包括您只能将标准计算器函数放入 Y-VARS 之一,并且访问 Y-VARS 会带来很大的开销。

传递参数的常规方式是通过 Ans 在列表中,如下所示:

________________
 - PROGRAM:ADD
 - :Ans(1)+Ans(2
________________
 - PROGRAM:TEST
 - :For(I,0,20
 - :{I,I+1
 - :prgmADD
 - :Disp Ans
 - :End
________________