【问题标题】:Why is my TI-84 program terminating?为什么我的 TI-84 程序终止?
【发布时间】:2013-04-24 20:33:03
【问题描述】:

不知道为什么,但我的程序不断终止。我删除了所有停止功能。代码如下:

    :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
    :...

【问题讨论】:

  • 你怎么知道你的程序正在正确停在那里?
  • 我不是专家,但这一行 -> :Menu("Menu", "Restart", D"
  • 另外,你有一个错误。您在屏幕上写入“B^2-4AC”,但您从未将其值存储在 D 中。此外,您在写入之前 ClrHome 是否真实。
  • 程序显示“B^2-4AC=”和答案后,立即显示“完成”并终止程序。另外,忘了把 D 的值放在上面的代码中。
  • 看起来 D 最终不小于 0

标签: calculator ti-basic


【解决方案1】:

我怀疑您的程序正在退出,因为您从未使用“End”来结束您的 if 语句。除非 var D 小于零,否则程序将在该 If 语句上退出,因为此后的每一行都被视为 If 语句的一部分,因此被忽略。使用“End”标记指定哪些行是 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 语句,因为您的方法会导致类似于堆栈溢出/内存泄漏的情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多