出于好奇,我开始学习如何编写我的 TI-83+ 计算器。我最新程序的一部分涉及将数字存储在列表中。如何将项目添加到 TI-83+ 的列表中,如何循环访问它们?
5 回答
好吧,如果你想在最后添加一些东西,你需要列表的长度。假设您使用 L1 作为列表,变量 A 作为您尝试添加到列表中的值。
这是你要做的:
:A->L1(1+dim(L1))
这就是它的工作原理。dim 命令有 1 个参数。该参数是一个列表。当您使用 dim 命令时,它会在参数中返回列表的长度。当您想引用列表中的特定位置时,可以使用语法:list_name(location)。所以这行代码将变量A的值存储在L1的位置,比L1的长度多1,因此将变量A附加到L1的末尾。
如果要访问列表中的值,请再次使用语法:list_name(location)。另一方面,如果您不知道要查找的值的位置,或者您正在循环浏览列表并对每个值执行某些操作,则可以使用 for 语句。
像这样:
:FOR(A, 0, dim(L1))
::L1(A)->B
::"do whatever you want with the value of L1(A) here"
:END
或者像这样:
:FOR(A, 0, dim(L1))
::if(L1(A) == "insert value being searched for here"):THEN
:::A->B
:::dim(L1)+1->A
::END
:END
for 循环是这样工作的:在循环开始时,0 被存储到变量 A。然后循环继续,直到变量 A 大于 dim(L1)。每次循环重置后,变量 A 的值都会增加 1。
在第一个示例中,程序循环遍历 L1 的每个值,并对每个值执行您想做的任何事情。
在第二个示例中,程序循环遍历 L1 的每个值。当 L1 的值与您要查找的值匹配时,该值的位置将存储在变量 B 中,以供您以后使用。然后,将变量 A 的值设置为比 L1 的长度大 1。由于变量 A 的值大于 dim(L1),因此终止 for 循环。
可以将一个元素添加到未知长度列表的末尾,如下所示:
0→L1(1+dim(L1
在正常情况下,尝试设置大于列表长度的索引值会导致ERR: INVALID DIM
; 但是,如果索引仅比列表的长度大 1,则该值将附加到列表的末尾。
您可以按照 Thibault 所说的去做,填写、排序、转换(顺便说一句,说得很好)。但是,您也可以这样做:
3->L1(dim(L1))
这将在 L1 的末尾添加 3。
您首先需要像这样定义列表的大小:
3->dim(L1
(如果你忘记了,你会得到一个 ERR:Invalid Dim)
按回车,你会得到一个“10”作为答案(不用担心这是正常的)。
你可以在 [Catalog] 中找到 dim( 并且 -> 是 "[STO->].
然后你可以用一些这样的数据填充列表:
2->L1(1)
3->L1(3)
现在,当您打印 L1 时,您会得到:
{2 0 3 0}
第一个索引是 L1(1) 而不是 0(像往常一样)。
您可以使用 DelVar 删除列表:
DelVar L1
您可以用 Fill 填充它,对其进行排序,转换为矩阵 .... 只需转到 List 菜单(2nd + Stat)。
您可以使用 for 循环对列表进行迭代(没有 foreach,使用 dim(L1) 作为上限)。
指南中的更多信息,或者您也可以在此计算器问题堆栈上提问
希望这会有所帮助=)
您可以使用列表或矩阵,但我建议使用列表。您可以从此链接找到有关列表及其命令的信息。
列表也比仅使用变量更适合在程序执行之间保存值,变量可能会被其他程序或数学更改。