不知道为什么,但我的程序一直终止。我删除了所有的停止功能。下面是代码:
: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
:...
我怀疑你的程序退出,因为你从来没有使用"End"来结束你的if语句。除非var D小于零,否则程序将在该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语句,因为您的方法将导致类似于堆栈溢出/内存泄漏的事情。