【发布时间】:2012-03-08 21:26:43
【问题描述】:
出于好奇,我开始学习如何为我的 TI-83+ 计算器编程。我最新程序的一部分涉及将数字存储在列表中。如何在 TI-83+ 上将项目添加到列表中,如何循环/访问它们?
【问题讨论】:
标签: ti-basic
出于好奇,我开始学习如何为我的 TI-83+ 计算器编程。我最新程序的一部分涉及将数字存储在列表中。如何在 TI-83+ 上将项目添加到列表中,如何循环/访问它们?
【问题讨论】:
标签: ti-basic
好吧,如果你想在最后添加一些东西,你需要列表的长度。假设您使用 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,则该值将附加到列表的末尾。
【讨论】:
您可以使用列表或矩阵,但我建议使用列表。您可以从 link 找到有关列表及其命令的信息。
列表也比仅使用变量更适合在程序执行之间保存值,变量可能会被其他程序或数学更改。
【讨论】:
您首先需要像这样定义列表的大小:
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填充它,排序,转换为矩阵...... 只需转到列表菜单(2nd + Stat)。
您可以使用 for 循环对列表进行迭代(没有 foreach,使用 dim(L1) 作为上限)。
更多信息在guidebook或者你也可以在这个calculator questions stack问你的问题
希望这会有所帮助 =)
【讨论】:
您可以按照 Thibault 所说的去做,填写、排序、转换(顺便说一句,说得很好)。但是,您也可以这样做:
3->L1(dim(L1))
这将在 L1 的末尾添加 3。
【讨论】: