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] := 值
作为作业,我必须交换给定字符串中的字母。我已经想出了如何做到这一点,但不知道如何立即显示它们。它涉及一个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] := 值