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 に答える