如何在ti-89钛合金程序中向主屏幕显示值

时间:2015-03-16 20:55:43

标签: ti-basic

与此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。然而,出现了明显的错误。

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

disp q*1
x->ans(1)

然而,ti-89钛的ans(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的值。 到目前为止,我了解到直接从主屏幕使用的函数将q的值返回到同一个地方。但是我无法在实际程序中实现这一点,因为函数不希望将值传输到主屏幕,并且它在程序中相当无用。

其次,我发现这个website详细说明了将值返回主屏幕的方法。虽然方法1似乎有希望,但我似乎没有办法访问该文件夹/程序。很可能是因为它是他制作的并且没有在pdf上分享它的位置。我喜欢expr(" q"&":stop"),但是q没有被评估出去,所以也许我不得不以某种方式重做它。

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

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

任何人都有关于如何通过函数,粘贴或其他东西将值传递到主屏幕的任何想法,并让我之前定义的程序将其定义为值?

UPDATE + 1 好吧,我开始怀疑是否可能使它变得比它需要的更复杂......

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

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

1 个答案:

答案 0 :(得分:3)

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

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

expr(功能是ti-89上非常强大的功能,就像其他论坛中的人一样,低估了它。看看这个人想要做什么

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

后来通过将其改写为

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

表达式工具只是简单地表达括号中的内容。因此,在今天的学校休息期间,我在脑海里重新思考"如果我尝试重写括号,那么它会显示为Expr("x->"&String(q))

看,它有效。使用更完整的define版本进行测试以获得

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

尝试,测试和真实。一路工作。看看认为正在发生的事情是,任何不在引号内的内容都会立即在表达式中进行评估,而引用的对象只是简单地表达并在以后添加以响应"&& #34;键。此外,如果我用英语来描述它更有意义; "表达x存储在q' 的字符串中。

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

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

为了绕过这个问题。