【问题标题】:Printing out a set of lists in the ti-84 ti-basic在 ti-84 ti-basic 中打印出一组列表
【发布时间】:2014-10-14 02:18:50
【问题描述】:

我希望能够为某个任意数字 k 打印 L1 到 Lk(ti-84 中的列表)。

ti-basic 中的列表本质上是一维数组,用于将实数或复数存储到它们的每个元素中。

下面我创建了自己的列表,命名为 L1, ... L3(不是内置的,实际上可以通过键入 LL1, ... LL3 来访问和打印)

我会告诉你一些我尝试过的东西,等等。

让 L5 = {5,5,5}

如果我尝试以下代码 sn-p:

PROGRAM: ITRTLST
:ClrHome
:Disp LL1
:For(J,1,3
:Disp J
:Disp LL5
:End

这段代码输出:

1

{5,5,5}

2

{5,5,5}

3

{5,5,5}

注意 LL5 中的第一个“L”是一个令牌(可通过按 [2nd]+[LIST(STAT)] OPS B:) 访问

但是,如果我尝试以下代码 sn-p:

PROGRAM: ITRTLST
:ClrHome
:Disp LL1
:For(k,1,3
:Disp J
:Disp LLk
:End

我得到错误:未定义

这是因为它认为 'LLK' 是一个列表名称,而不是 LL1、LL2、LL3

如果我让 LLK = {1,2,3} 然后上面的代码输出,我们可以看到这一点

1

{1,2,3}

2

{1,2,3}

3

{1,2,3}

【问题讨论】:

  • 任何澄清请问我。我来这里是为了回答任何问题,澄清,一起解决这个问题,等等。我知道必须有一种方法来遍历一组列表,就像我正在尝试的那样,因为在计算器中有这样一个 '5th 的概念' 字符串(如果您单击统计编辑,无论列表名称如何,您都会在每个列表的右上角看到一个数字)。在 ti-84 中,每个列表最多可以有 999 个元素,我认为甚至是 999 个列表(如果我错了,你可以纠正我)。

标签: arrays ti-basic


【解决方案1】:

这可以做到,但很痛苦,而且可能会很慢。

试试这个代码,将 [Max] 替换为数字:

:ClrHome
:For(I,1,[Max])
:"Convert I into a string, this is slow
:I/10→D
:sub("0123456789",10*fPart(D)+1,1)→Str1
:int(D)→D
:While D>0
:D/10→D
:sub("0123456789",10*fPart(D)+1,1)+Str1→Str1
:int(D)→D
:End
:"Display the I'th list
:Disp expr("ʟL" + Str1)
:End

请注意,以" 开头的行只是 cmets,可以删除。

【讨论】:

  • 我刚刚测试了代码,虽然假设您没有索引超过几位数的列表,但它比我更快。
【解决方案2】:

这是一个非常丑陋的(可能是唯一的)方法,但可以通过运行一堆If 命令来做到这一点。

例如,

Disp ʟL1
If K≥2
    Disp ʟL2
If K≥3
    Disp ʟL3
If K≥4
    Disp ʟL4
If K≥5
    Disp ʟL5

以此类推。


编辑:我不知道你是否还需要这个问题的答案,但我找到了一种方法来做你想做的事。不过还是很乱。

  1. 将您的号码转换为字符串,例如Str0(您可以从以下几种方式中进行选择:link1link2)。

  2. 将该数字与列表名称连接起来。例如,"ʟL" + Str0 → Str0

  3. expr(计算字符串。

正如我所说,这非常难看,并且所有这些数字到字符串的转换都不会太有效,因此您最好为每个条件复制粘贴一堆 If 语句。

或者,您可以将正在使用的所有列表压缩到一个大列表中,并将每个列表的起始位置存储在另一个列表中。然后您可以使用seq( 命令从大压缩列表中提取您想要的任何子列表。

【讨论】:

    【解决方案3】:

    在 TI-Basic 中无法做到这一点。就像无法从字符串 "X" 到变量 X 的内容一样,也无法从名称中包含该数字的列表中获取数字。

    更新:事实证明,您可以使用 expr("X") 来获取 X 的值。您可以对列表执行相同的操作。

    但是,如果您想存储二维数据数组,TI-Basic 确实有matrices,尽管它们与列表相比有些限制(特别是,您不能创建命名矩阵)。如果你需要一些比这更复杂的数据结构,你可能已经达到了这种语言的极限。

    【讨论】:

    • 5->x ;表达式(“x”)= 5;使用 expr 是获取字符串内容的方法。
    • 矩阵的列本质上是 TI 中的列表。我可以使用一种方法将一组列表转换为矩阵的列。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    相关资源
    最近更新 更多