【问题标题】:Quadratic equation solver in TI-BASIC returns incorrect rootsTI-BASIC 中的二次方程求解器返回不正确的根
【发布时间】:2017-05-12 01:12:38
【问题描述】:

在我上高中的时候,我想出了如何编写我的 TI-84 Plus 计算器来为我计算二次方程。就像我曾经的那双好鞋一样,我在期末考试前删除了该程序。我现在正在尝试重新创建该程序,但效果不佳。这是我的代码:

:Prompt A, B, C
:(-B+√(B²-4AC))/2A→Y
:(-B-√(B²-4AC))/2A→Z
:Disp Y
:Disp Z

对应计算器上的STO>(存储)按钮,它允许用户为给定的字母变量设置值。)

据我所知,这应该有效。数学和括号似乎是有序的,Prompt 函数有效(程序完成后,要求计算器打印 A、B 和 C 与上次运行程序时存储的值相匹配)。

当我要求它计算我已经知道答案的二次方程时,它给了我有趣的数字。输入A=1B=-3C=2(其中should return x-intercept values of 1 and 2)将返回 2 和 0。 x-截距 0=3x²-10x+7 are 1 and 7/3,但计算器返回 21 和 0。我现在无法重现它,但这个程序也返回了一些虚数不应该在的地方。

这段代码有什么问题?数学有效(将第二和第三行代码输入计算器进行计算,与程序中的代码行相反,在将值存储在变量中之后确实返回正确的值),PromptDisp 函数工作;这里有什么问题?

【问题讨论】:

  • FWIW,我的代码看起来几乎与the code here 完全一样,只是它们的显示更花哨。从表面上看,该代码有效。
  • 我没有方便测试的 TI-83 仿真器 - 但您可以尝试将 (2A) 括起来吗?
  • @duskwuff 嗯。这似乎已经做到了。谢谢! ...你想写一个答案,还是我应该?

标签: math quadratic ti-basic


【解决方案1】:

操作顺序再次罢工。表达式

(-B+√(B²-4AC))/2A

被解析为

((-B+√(B²-4AC))/2)*A

将括号添加到/(2A) 以解决此问题。

【讨论】:

  • 这怎么会导致第一个示例,因为A=1 应该在两种解释中给出相同的结果?
  • @LutzL 我唯一能看到的就是如果用减法替换除法符号。对于第一个示例,这将给出 {2,0}。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-02
  • 2022-06-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多