不确定为什么,但我的程序一直在终止。我删除了所有Stop功能。这是代码:
: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 :(得分:1)
我怀疑你的程序正在退出,因为你从不使用“结束”来结束你的if语句。除非var D小于零,否则程序将在该If语句上执行WILL EXIT,因为此后的每一行都被视为If语句的一部分,因此被忽略。使用“结束”标记指定哪些行是If语句的一部分,哪些行不是。我怀疑你想要:
:If D<0
:Then
:ClrHome
:Disp "Nonreal answer"
:"..."
:Pause
:ClrHome
:Menu("Menu", "Restart", D"
:End
:...
或类似的东西。我99%肯定这是你的问题。
要注意的其他事项是你宣布Lbl A两次。在TI-BASIC中,当您使用Goto A时,计算器从程序开头开始,并查找第一个“Lbl A”,在这种情况下是第一行。其次,在你的菜单中,通过在你的唯一选项之后放置“D”参数,一旦用户点击它,你将标记D,这不存在,因此,程序将退出并返回错误Lbl
这一行: Lbl prgmQUADSTE3
不是有效行。我假设您希望程序要么自己调用,要么调用单独的程序。如果程序正在调用自己,我建议您使用Goto语句,因为您的方法会导致类似于堆栈溢出/内存泄漏。