首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ti-84ti-basic打印出一组列表

用ti-84ti-basic打印出一组列表
EN

Stack Overflow用户
提问于 2014-10-14 10:18:51
回答 3查看 980关注 0票数 1

我希望能够打印出L1直到Lk (列表在ti-84中),对于一些任意的数字k。

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

下面我做了一个名为L1的列表...L3 (不是内置的,实际上可以通过键入LL1,...LL3)

我会向你展示一些我尝试过的东西,等等。

设L5 = {5,5,5}

如果我尝试下面的代码片段:

代码语言:javascript
复制
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:访问)

但是,如果我尝试以下代码片段:

代码语言:javascript
复制
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}

EN

回答 3

Stack Overflow用户

发布于 2015-05-24 06:34:52

这是可以做到的,但这是一件痛苦的事情,而且可能会非常缓慢。

尝试此代码,将Max替换为一个数字:

代码语言:javascript
复制
: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

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

票数 1
EN

Stack Overflow用户

发布于 2014-10-14 10:31:32

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

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

票数 0
EN

Stack Overflow用户

发布于 2015-01-27 09:59:13

这是一个非常难看的(可能也是唯一的)方法,但是可以通过运行一组If命令来实现。

例如,

代码语言:javascript
复制
Disp ʟL1
If K≥2
    Disp ʟL2
If K≥3
    Disp ʟL3
If K≥4
    Disp ʟL4
If K≥5
    Disp ʟL5

以此类推。

编辑:我不知道你是否还需要这个问题的答案,但我找到了一种方法来做你想做的事情。尽管如此,它仍然非常混乱。

  1. 将您的数字转换为字符串,如Str0 (您可以从以下几种方式中选择:将该数字与列表名称一起转换为link1。例如,使用expr(.

对字符串执行"ʟL" + Str0 → Str0.

  • Evaluate

正如我所说的,这非常丑陋,而且所有这些数字到字符串的转换都不可能太高效,所以您最好为每个条件复制粘贴一堆If语句。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26351675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档