遍历列表时出现 TI 基本索引错误
TI Basic Index Error when looping through List
我正在尝试在 TI-84 上的 TI-BASIC 中实现插入排序,并且几乎成功了。我的解决方案对列表的第一个元素以外的所有元素进行排序。为了正常工作,我相信这一行:
While C>1 and L1(C)>V
需要
While C>0 and L1(C)>V
然而,这会产生错误,因为显然 TI-BASIC 正在检查 L1(0)
,即使我们在到达那里之前退出循环。
有人可以解释一下如何避免这个问题并使代码正常工作吗?
这是我的代码:
0->dim(L1
randIntNoRep(1,10,10)->L1
For(I,2,10)
L1(I)->V
I-1->C
While C>1 and L1(C)>V
L1(C)->L1(C+1)
C-1->C
End
V->L1(C+1)
End
Disp L1
经过反复试验,我找到了解决办法。诀窍是如果 C=1 你不能在 while 循环中使用它,你必须在 If 语句中使用它。将此代码块放在 while 循环之后:
If C=1 and L1(C)>V
Then
L1(C)->L1(C+1)
C-1->C
End
整个事情:
SetUpEditor L1
0->dim(L1
randIntNoRep(1,10,10)->L1
For(I,2,10)
L1(I)->V
I-1->C
While C>1 and L1(C)>V
L1(C)->L1(C+1)
C-1->C
End
If C=1 and L1(C)>V
Then
L1(C)->L1(C+1)
C-1->C
End
V->L1(C+1)
End
Disp L1
我正在尝试在 TI-84 上的 TI-BASIC 中实现插入排序,并且几乎成功了。我的解决方案对列表的第一个元素以外的所有元素进行排序。为了正常工作,我相信这一行:
While C>1 and L1(C)>V
需要
While C>0 and L1(C)>V
然而,这会产生错误,因为显然 TI-BASIC 正在检查 L1(0)
,即使我们在到达那里之前退出循环。
有人可以解释一下如何避免这个问题并使代码正常工作吗?
这是我的代码:
0->dim(L1
randIntNoRep(1,10,10)->L1
For(I,2,10)
L1(I)->V
I-1->C
While C>1 and L1(C)>V
L1(C)->L1(C+1)
C-1->C
End
V->L1(C+1)
End
Disp L1
经过反复试验,我找到了解决办法。诀窍是如果 C=1 你不能在 while 循环中使用它,你必须在 If 语句中使用它。将此代码块放在 while 循环之后:
If C=1 and L1(C)>V
Then
L1(C)->L1(C+1)
C-1->C
End
整个事情:
SetUpEditor L1
0->dim(L1
randIntNoRep(1,10,10)->L1
For(I,2,10)
L1(I)->V
I-1->C
While C>1 and L1(C)>V
L1(C)->L1(C+1)
C-1->C
End
If C=1 and L1(C)>V
Then
L1(C)->L1(C+1)
C-1->C
End
V->L1(C+1)
End
Disp L1