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
变量使用 X
,Parametric
使用 T
,Polar
使用 θ
.
此示例程序演示了我所描述的内容。
:"XLog(X→Y1
:Disp Y1(10
:Disp Y1(5
当Y1
作为参数传递给10
时,Y1
中X
的所有实例都被替换为10
。 Y1
现在等同于 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
________________
是否可以在需要参数的另一个程序中执行一个程序? (没有内联)
例如
________________
- 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
变量使用 X
,Parametric
使用 T
,Polar
使用 θ
.
此示例程序演示了我所描述的内容。
:"XLog(X→Y1
:Disp Y1(10
:Disp Y1(5
当Y1
作为参数传递给10
时,Y1
中X
的所有实例都被替换为10
。 Y1
现在等同于 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
________________