2013-04-24 2 views
0

왜 내 프로그램이 종료되는지 계속 확신 할 수 없습니다. 모든 Stop 기능을 제거했습니다. 코드는 다음과 같습니다.TI-84 프로그램이 종료되는 이유는 무엇입니까?

:Lbl A 
    :ClrHome 
    :Prompt A 
    :ClrHome 
    :Prompt B 
    :ClrHome 
    :Prompt C 
    :Disp "B^2-4AC=" (Program stops here for some reason) 
    :If D<0 
    :Then 
    :ClrHome 
    :Disp "Nonreal answer" 
    :"..." 
    :Pause 
    :ClrHome 
    :Menu("Menu", "Restart", D" 
    :Lbl prgmQUADSTE3 
    :Lbl A 
    :... 
+0

프로그램이 ** 멈추고 있다는 것을 어떻게 알 수 있습니까 **? – eboix

+3

나는 전문가가 아니지만이 줄은 -> : Menu ("Menu", "Restart", D "<- 문법적으로 나쁘게 보임 – Jonesopolis

+0

또한 버그가있다."B^2-4AC "를 화면에 나타나지 만 그 값을 D에 저장하지 마십시오. 또한 실제인지 여부를 기록하기 전에 ClrHome을 입력하십시오. – eboix

답변

1

"End"를 사용하여 if 문을 종료하지 않았기 때문에 프로그램이 종료 된 것 같습니다. var D가 0보다 작 으면을 제외하고 프로그램은 If 문에서 종료합니다. 그 이후의 모든 행은 If 문의 일부로 간주되므로 무시됩니다. "End"토큰을 사용하여 If 문에 포함 된 행과없는 행을 지정합니다. 당신이 원하는 것 같습니다 :

:If D<0 
:Then 
:ClrHome 
:Disp "Nonreal answer" 
:"..." 
:Pause 
:ClrHome 
:Menu("Menu", "Restart", D" 
:End 
:... 

또는 이와 비슷한 것. 나는 이것이 귀하의 문제라고 확신합니다.

다른주의 사항은 Lbl A를 두 번 선언한다는 것입니다. TI-BASIC에서 Goto A를 사용하면 계산기가 프로그램의 시작 부분에서 시작하여 첫 번째 행인 첫 번째 "Lbl A"를 찾습니다. 둘째로, 메뉴에서 "D"옵션을 하나만 선택하면 사용자가이를 클릭하면 존재하지 않는 D 레이블을 지정하게되므로 프로그램은 오류 Lbl로 종료됩니다 .

이 줄 : 하는 Lbl prgmQUADSTE3

유효한 라인이 아니다. 나는 당신이 프로그램 자체를 호출하거나 별도의 프로그램을 호출하기를 원한다고 가정하고있다. 프로그램 자체를 호출하는 경우, 대신 스택 오버플로/메모리 누수와 비슷한 무언가가 발생할 수 있으므로 Goto 문을 사용하는 것이 좋습니다.

관련 문제