如何在 ti-89 钛程序期间向主屏幕显示值

How to display a value to the homescreen during a ti-89 titanium program

关于这个thread,这也是我想做的,但我在这方面有更多的余地。

我的问题是我目前正在开发一个定义程序(用于我的 ti-89 钛)来写出变量的定义。然而,考虑到我有无限数量的变量要添加,我认为一遍又一遍地使用 define 函数会浪费内存和处理能力。所以我的想法是将变量保存到另一个要在程序后面部分定义的变量。

prompt x
lbl x_d_r
x_d_r->q:Goto def
lbl def
define expr(q)[1]=x

其中 x_d_r 没有赋值。所以程序应该使用定义的字符串作为列表值 x。然而明显的错误出现了。

所以我在主屏幕和程序屏幕上玩了一会儿,遇到了 entry(1) 和 ans(1)。回头看看 ti-83(或 84)我基本上可以走了(如果我没记错的话)

disp q*1
x->ans(1)

但是 ti-89 钛上的答案 (1) 是基于提交到主屏幕的最后一个答案。即使这样,ans(1) 或 entry(1) 在程序中也会被替换掉。幸运的是,我找到了避免这种情况的方法。

Prgm
expr(char(120)&char(22)&char(97)&char(110)&char(115)&char(40)&char(49)&char(41))
EndPrgm

对于那些不知道的人,这只是表达 x->ans(1),这是代码在程序中传输 ans(1) 的一种方式,而无需删除这样说的代码。

但它仍然无法正常工作,因为需要将一个值发送到主屏幕才能正确记录。这是我希望 ti-84 或 ti-83 在钛上仍然具有的优点之一。所以我花了一些时间 寻找如何从程序中将 q 的值显示到主屏幕的方法。 到目前为止,我了解到直接从主屏幕使用时的功能 return q 的值到同一个地方。但是我无法在实际程序中实现它,因为该函数不希望将值传输到主屏幕,并且它在程序中相当无用。

其次,我发现了这个 website,其中详细介绍了将 return 值添加到主屏幕的方法。虽然方法 1 似乎很有希望,但我似乎没有任何方法可以访问那个 folder/program。很可能是因为它是他制作的并且没有在 pdf 上共享它的位置。我确实喜欢 expr("q"&":stop"),但是 q 没有被计算出来所以也许我必须以某种方式重新处理它。

发生这种情况时,我认为其他一些想法可以在程序中使用粘贴键,但我不知道如何实现从 getkey 中找到的东西,更不用说第二个按钮和抓取按钮是如何影响的了。

或者我可以通过某种方式让 ans(1) 查看主屏幕以外的其他地方。最好是 i/0 屏幕,但也可能是其他列表或数据矩阵。

有人知道如何通过函数、粘贴或其他方式将值传递到主屏幕吗?我之前定义的程序是否将其定义为值?

更新+1 好吧,我开始怀疑我是否让它变得比需要的更复杂......

毕竟,我只打算 x->x_d_r[1],这已经在别处定义了。所以它击败了x->q:Goto def Lbl def Define expr(q)=x

(或者类似调用历史记录程序来定义值的东西?) 在处理速度和内存数量方面?

知道了。请参阅 here 了解我真正想做的事情。

因此,作为对主要问题的解释,我希望能够 post q 的字符串值由 x 的另一个值定义。

expr( 功能在 ti-89 上是一个非常强大的工具,和其他论坛的人一样,低估了它。看看这个人试图做什么

InputStr "Function:",f(x)
expr(f)→f(x)  

后来被改写为

InputStr "function", n
expr(n & "->f(x)")

表达工具只是简单表达括号中的内容。所以今天在学校休息期间,我在脑海中重新思考 “如果我尝试重写括号使其显示为 Expr("x->"&String(q)) 会怎样?

瞧瞧,它起作用了。用更完整的定义版本测试它以获得

td()
Prgm
Prompt X
x_d_r->q
expr("x->"&string(q)&"[1]")
Disp x_d_r[1]
Delvar x_d_r
EndPrgm

久经考验,真实可靠。一路工作。看看我 认为 正在发生的事情是,任何不在引号内的东西都会在表达式中立即求值,而被引号引用的对象只是简单地表达并稍后添加以响应“&”键.此外,如果我要用英语更多地描述它是有道理的; "Express x to be stored into the string of q's respective table".

虽然为了变量的缘故,我将不得不研究使 x_d_r 仅对程序本地化的方法,而不补偿执行 [=] 时 x_d_r 部分不被视为存储值的事实16=]。但是知道我现在所知道的我可能会做

expr("q"+"x_d_r"&->a)
expr("x->"&string(a)-"q"&"[1]")

为了绕过那个问题。