TI-Nspire 中如何将一个字符串 'array push' 放入列表中?

How to 'array push' a string into a list in TI-Nspire?

作为作业,我必须交换给定字符串中的字母。我已经想出了如何做到这一点,但不知道如何立即显示它们。它涉及一个for循环。所以如果我在 for 循环中包含 disp x,它会在括号和 space 之间显示它们,但我希望它们全部在一起,所以而不是

"a"

"b"

"c"

我要"abc"。有没有办法做到这一点?我是否应该将变量压入一个数组,然后在 for 循环之后显示该数组?如何将变量压入数组?

顺便说一句,这是在 TI-Nspire CX Cas 中。

要将元素 x 添加到数组 A,请使用 augment(A, {x})

对于您的特定情况,我会使用一个字符串变量(称之为 string),在 for 循环的每次迭代中将下一个字母连接到该变量。因此,如果下一个要添加的字母在变量 letter 中,您可以将以下代码行放在 for 循环的末尾:string := string & letter.

我将通过一个涵盖您的场景的示例来回答您。假设我们的目标是在将整数构造为 base2(二进制)时得到一个列出二进制元素的数组。

Define LibPub develope(a,b)=
Func
Local mi,m,q
mi:=mod(a,b)
q:=((a-mi)/(b))
Disp mi
While q≥b
  a:=q
  m:=mod(a,b)
  q:=((a-m)/(b))
  Disp m
EndWhile
EndFunc

以上小程序将一个十进制整数开发成二进制;但是,如您所述,每个二进制文件都显示在单独的行中: 例如:

develope(222,2)
0
1
1
1
1
0
1

enter image description here

但这不是你想要的,你想要的是在一行中。 重要的是您可能希望每个元素都可以作为单独的整数访问,对吗?就像数组列表中的一个元素一样,这就是您要找的东西吗?

我们开始了:

    Define LibPub develope(n,b)=
Func
Local q,k,seti,set,valid
valid:=b
If valid>1 Then
  q:=n
  k:=0
  set:={}
While q≠0
    seti:=mod(q,b)
    q:=int(((q)/(b)))
    k:=k+1
    seti→set[k]
EndWhile
Else
  Disp "Erreur, La base doit être plus grand que 1."
EndIf
Return set
EndFunc

基本上,因为我们不知道要在数组列表中添加多少元素,所以 set:={} 声明了一个未定义的数组 dim(通常是长度),以便动态地得到增强。

命令seti→set[k]会将seti的值添加到数组列表的k位置。

return set 只是 returns 数组。

如果您需要访问特定元素,您知道如何访问:elementNumber5:=set[5]

希望对您有所帮助。

这里还有方法:

本地数组 数组[dim(数组)+1] := 值