2

如果两个点已知,我有一个代码来计算一条线的斜率;但是,它只返回十进制格式的斜率。我希望能够选择将小数转换为分数。这是我到目前为止所做的:

:Disp " "
:Input "PAIR 1: ",T
:Input "PAIR 2: ",U
:((LU(2)-LT(2))/(LU(1)-LT(2)))->M
:Disp "Slope Is:      ",M
:Input "F>>D? Y/N:      ",Str0
:If Str0="Y"
:(M>F<>D)->O
:Disp O

当我运行它时,我得到 ERROR: SYNTAX on the conversion step (实际斜率计算成功完成。)

**我在上面键入的一些代码与 TI 84 中的显示不完全一致,但这是我使用 QWERTY 键盘能做到的最好的。

4

3 回答 3

4

►Frac并且►F◄►D是显示令牌,而不是转换令牌

TI 计算器只能以一种方式存储数字:以其专有的浮点格式。这意味着数字不能从分数“转换”为小数,反之亦然,只能显示为分数或小数。因此,存储到任何东西(例如3►F◄►D→X)都会引发语法错误。

使用菜单中的Auto//标记更改显示模式Dec;覆盖模式并显示为分数近似值,显示为小数,并告诉计算器以与其当前设置相反的显示模式显示。FracMODE►Frac►Dec►F◄►D

从这个页面引用:

►Frac 尝试以分数形式显示输入。它仅适用于程序外的主屏幕,或与程序中的 Disp 和 Pause 命令一起使用。

于 2015-11-08T02:24:39.767 回答
1

麻烦就在这条线上

(M>F<>D)->O
Disp O

当它可以简单地表示为时,没有理由以这种方式格式化它

Disp M>F<>D

计算正确。

于 2015-11-08T01:42:27.520 回答
0

从小数转换为分数的一种方法是使用欧几里得算法。这里是 ti-basic

:Ans→X:{1,abs(Ans
:Repeat E‾9>Ans(2
:abs(Ans(2){1,fPart(Ans(1)/Ans(2
:End
:round({X,1}/Ans(1),0
:Ans/gcd(Ans(1),Ans(2

Ans是您要转换的小数,E‾9与 10^(-9) 相同

于 2016-12-07T01:44:05.720 回答