2
4

1 回答 1

4

关闭你的循环

您的问题似乎源于不正确地匹配您的If语句、循环及其End语句。

发生了什么

在所有循环和语句关闭之前到达文件末尾时,TI-Basic 的行为If是静默失败,终止程序,而不是提醒用户错误。

这种行为使某些奇怪的代码在语法上有效。例如,此代码段将毫无错误地运行:

 For(A,1,10
     Disp A

结果是

               1
            Done

显然这与运行相同,Disp 1因此没有理由在您的代码中使用它。它仅用于使代码中出现无声和烦人的错误。

修复

假设您的代码的缩进版本代表您希望循环嵌套的方式,下面的代码应该可以解决您的问题。

Input "Root=",A
Input "Radical=",B
B→Z
ClrList L₃
prgmPRMNTOL1
prgmGETPRIME
For(Y,1,10)
0→Z
For(X,1,dim(L₂))
If L₁(Y)=L₂(X)
Z+1→Z
End
If Z≥A:Then
int(Z/A)*A→C
int(Z/A)→D
For(T,1,D)
L₁(Y)→L₃(1+dim(L₃))
End
For(R,1,C)
ClrList L₄
For(S,1,dim(L₂))
If L₂(S)=L₁(Y)
–1→L₂(S)
End
End:"Inserted this End
For(Q,1,dim(L₂))
If L₂(Q)≠–1
L₁(Q)→L₄(1+dim(L₄))
End
ClrList L₂
For(Q,1,dim(L₄))
L₄(Q)→L₂(Q)
End
End
End
1→E
For(M,1,dim(L₃))
E*L₃(M)→E
End
1→F
For(N,1,dim(L₂))
F*L₂(N)→F
End
Disp "OUTSIDE",E,"ROOT",A,"INSIDE",F

如果这不能解决问题,则缺少End代码中的其他地方。

于 2015-04-05T11:44:45.123 回答