0

如果我的问题不清楚,那么在“方法 2:英国方法”部分下,我将尝试做的事情有一个很好的解释:http: //www.gradeamathhelp.com/how-to-factor-polynomials。 html

我当前的程序只需输入所有 3 个 A、B 和 C 变量,然后将 A*C 分配给 D

然后我取 D 绝对值的负值并将其分配给 X 和 Y

然后我简单地执行 if/then 语句来测试 X+Y=B 和 X*Y=D 是否,如果不是,则将 0.5 添加到 X 直到它等于或大于 D,此时我将 X 放回它的原始值并将 .5 添加到 Y。这导致了内存错误。

无视我使用 if/then 语句的糟糕、糟糕的习惯,有没有人对我如何解决这个问题有更好的了解?(让我放松一下,我只涉足java和python,有时还涉足TIBasic,而且我只是高中二年级的学生!)

注意:此代码不会运行,因为我正在重新创建它,它不是实际代码,只是一种娱乐。语法都是错误的。(IE:-> 是箭头,不是负等号)

我刚刚写了这个,所以我可能忘记了一些东西。

:Prompt A
:Prompt B
:Prompt C
:A*C→D 
:-abs(D)→X
:-abs(D)→Y
:Lbl A
:If X+Y=B and X*Y=D
:Then
:Disp X,Y
:Pause
:Else
:X+.5→X
:Goto B
:Lbl B
:If X>D
:-abs(D)→X
:Y+.5→Y
:Goto A
4

3 回答 3

1

您的代码不起作用,因为每次使用“THEN”命令时都需要“END”命令。END 也用于关闭“REPEAT”、“FOR”和“WHILE”循环。为什么“IF,THEN”类型的命令需要“END”?因为“如果,那么”等于:

   If X+Y=B and X*Y=D (

在典型的脚本中

“END”就像一个结束括号,并且是必需的,因为“THEN”就像一个开括号。

如果您只需要执行一个命令,请执行以下操作

    If X+Y=B and X*Y=D
    do this

这就像

    If X+Y=B and X*Y=D do this

我不确定这一点,因为我不确定您到底想做什么,但我认为代码是:

    :Prompt A
    :Prompt B
    :Prompt C
    :A*C -> D 
    :-abs(D) -> X
    :-abs(D) -> Y
    :lbl A
    :if X+Y=B and X*Y=D
    :then
    :disp X,Y
    :pause
    :else
    :X+.5 -> X
    :goto B
    :end
    :lbl B
    :if X>D
    :-abs(D) -> X
    :Y+.5->Y
    :goto A

如果 X+Y=B 且 X*Y=D 则显示正确答案,否则将 X 加 0.5 并继续执行 lbl B。在 lbl B 内,将检查 X>D ; 如果 X 大于 D 则 D 的负绝对值将存储为 X,Y 将增加 0.5,并重新检查 lbl A 中的值。

另外,关于 lbl B 的注释:

    :if X>D
    :-abs(D) -> X
    :Y+.5->Y
    :goto A

只有当 X>D 时,才会将 D 的负绝对值存储为 X。无论 X 是否大于或小于 D,Y 都会增加 0.5。不确定这是否是您的意图,但以防万一我认为我会引起您的注意。

于 2013-12-19T02:25:51.073 回答
1

有一种更简单的方法可以做到这一点。设置a+bi确保程序也显示虚数而不是给出错误。"表示评论。最后,添加最后一行可以消除“完成”消息。

: "Clear and request input
: ClrHome
: a+bi
: Disp "ax^2+bx+c=0"
: Input "a. ",A
: Input "b. ",B
: Input "c. ",C

: "Doing the maths
: Disp (-B+√(B^2-4AC))/(2A)
: Disp (-B-√(B^2-4AC))/(2A)
: "

代码本身很容易解释,它要求变量a,bc, 然后代入二次公式并打印。

于 2015-03-12T21:49:25.387 回答
0

下载地址:http: //www.ticalc.org/pub/83/basic/math/algebra/

于 2011-03-04T04:04:04.527 回答