早教吧 育儿知识 作业答案 考试题库 百科 知识分享

FX5800正反算程序,说是语法错误,”X”?A:”Y”?B:Lbl0:“0.FS,1.ZS”C:IfC≠0.000:ThenGoto1:IfEnd”X0”?X:”Y0”?Y:“S=”:Pol(X-A,Y-B)→S◢计算两点的距离IFJ≤0:Then“R=”:J+360→R◢计算两点的

题目详情
FX5800正反算程序,说是语法错误,
”X”?A:”Y”?B:Lbl 0:“0.FS,1.ZS” C :If C≠0.000:Then Goto 1:If End
”X0”?X:”Y0”?Y:“S=” :Pol(X-A,Y-B) →S◢ 计算两点的距离
IF J≤ 0:Then “R=” :J+360→R ◢ 计算两点的方位角
Else “R=” :J→R ◢
If End
Goto 0
Lbl 1:“S” S:”R” R:“X=” :A+Rec(S,R) →X◢ 计算坐标X
“Y=” :B+J→Y◢ 计算坐标Y
Goto 0
▼优质解答
答案和解析

计算方法是对的,但语句繁赘,不像是熟手写的代码.改动之处如下:

  1. 正反算的条件判断应该在输入起点坐标之前

  2. “S=” :Pol(X-A,Y-B) →S◢ 这句是错的,因为Pol 函数计算出的结果自动储存在 I 、J 两个字母中,距离为I,方位角为J.

  3. 方位角为负的判断语句不必用IF,因为是但条件判断,用双箭头 “=>” 即可

    所以,正确的写法是Pol(X-A),Y-B):J<0=>J+360→J:“S=” :I◢


另附全段改后代码:

Deg:Fix3↲

Lbl 0↲

“ZS[1],FS[2]”?→A:If A=1:Then:Goto 1:Else:Goto 2:IfEnd↲

Lbl 1↲

“X0=”?X:”Y0=”?Y:“D=”?I:”F=”?J↲

X+Icos(J)→U:Y+Isin(J)→V↲

“X=”:U◢

“Y=”:V◢

Goto 0↲

LBl2↲

“X0=”?X:”Y0=”?Y:“X1=”?U:”Y1=”?V↲

Pol((U-X),(V-Y)):J<0=>J+360→J↲

“D=”:I◢

“F=”:J◢

Goto 0↲