FX5800计算器的积分程序(正反算、全线路、新线路)终极版
ZHUCHENGXU 主程序
"1.ZS,2.FS" ?→Q 输入1正算,输入2反算
“NEW=0,OLD ≠0”?Z
If Z=0:Then “X0=”?A:“Y0=”?B:“C0=”?C:“1/R0=”?D:“1/RI=”?E:“SP=”?F:“EP=”?G:Ifend:Q=2=>Goto 2
Lbl 1 :“KM=,<0 Stop”?H:H<0=>Stop:“PJ=”?O:“PY=”?L
Lbl Z:Z=1=> Prog“01”:Z=2=> Prog“02” 选择数据库文件,可增加
H- F→X:0.5(E-D)÷(G-F)→N
C+(XD+NX2)*180÷π→P:P<0=>P+360→P:P>360=>P-360→P
A+∫(cos(C+(XD+NX2)*180÷π),0,X)+Lcos(P+O)→U
B+∫(sin(C+(XD+NX2)*180÷π),0,X)+Lsin(P+O)→V
Q=2=>Goto 4:Cls:Fix 3
"Xn=":Locate 4,1,U:"Yn=": Locate 5,2,V:“FWJ=”:P▶DMS◢
Norm 2:Cls:Goto 1
Lbl 2:“XD=,<0,STOP”?R:R<0=>Stop:“YD=”?S
“KMDG=”?H :90→O:0→L:Goto Z (H线路范围内的任意桩号)
Lbl 4:Pol(R-U,S-V):J<0 => J+360→J
While abs(Icos(J-P))≤0.001:P-J>180=> J+360→J: P-J<-180=> P+360→P:IF P-J>0:then -I→L:else I→L ifend
Goto 3: Whileend:H+Icos(J-P)→H:Goto Z
Lbl 3:Cls:Fix 3
“KM=”: Locate 4,1,H:“PY=”: Locate 4,2,L◢
Norm 2:Cls:Goto 2
01(数据库子程序)
If H<=第一曲线终点桩号:then 第一曲线起点X→A:第一曲线起点Y→B:第一曲线起点方位角→C:起点曲率→D:终点曲率→E:起点桩号→F:终点桩号→G:return:ifend
……………
程序说明:
1、 该程序可以计算任意线形(直线、圆曲线、缓和曲线、不完整曲线)任意桩号的坐标(正算,输入1),也可根据坐标计算该点到线路的距离及垂足桩号(反算,输入2);
2、 (NEW=0,OLD≠0)?如果要计算的点为数据库线路中的点,则输入数据库编号(以整数1、2、3…代替输入);如果在数据库中没有要计算线路的数据,则输入曲线要素
X0:曲线起点X坐标;
Y0:曲线起点Y坐标;
C0:曲线起点方位角;
R0-1、 RI-1:曲线起点、终点曲率,直线为0,曲线左偏输入负值,右偏输入正值;
SP、 EP:曲线起点桩号,终点桩号;
KM:待求点桩号;
PJ:正斜交的设定;
PY:偏中距离,线路上的点输入0,右偏输入+值,左偏输入-值;
3、 正算显示坐标及切线方位角;反算输入线路的任意桩号(此桩号越接近真实值计算速度越快)、待求点坐标,显示待求点桩号及偏中距离;
4、 正算子程序为积分公式编写而成;反算子程序为角度趋近的方法编写,计算速度有点慢。
5、 此程序显示较直观,结果在同一屏幕显示。注* :程序中乘号用*标示,其余为X。
FX5800计算器的积分程序(正算、全线路、新线路)终极版
ZHUCHENGXU 主程序
“NEW=0,OLD≠0”?Z
If Z=0:Then “X0=”?A:“Y0=”?B:“C0=”?C:“1/R0=”?D:“1/RI=”?E:“SP=”?F:“EP=”?G:Ifend:Q=2=>Goto 2
Lbl 1 :“KM=,<0 Stop”?H:H<0=>Stop:“PJ=”?O:“PY=”?L
Z=1=> Prog“01”:Z=2=> Prog“02” 选择数据库文件,可增加
H- F→X:0.5(E-D)÷(G-F)→N
C+(XD+NX2)*180÷π→P:P<0=>P+360→P:P>360=>P-360→P
A+∫(cos(C+(XD+NX2)*180÷π),0,X)+Lcos(P+O)→U
B+∫(sin(C+(XD+NX2)*180÷π),0,X)+Lsin(P+O)→V
Cls:Fix 3
"Xn=":Locate 4,1,U:"Yn=": Locate 5,2,V:“FWJ=”:P▶DMS◢
Norm 2:Cls:Goto 1
正反算修改版(反算返回条件判断部分修改)
"1.ZS,2.FS" ?→Q 输入1正算,输入2反算
“NEW=0,OLD ≠0”?Z
If Z=0:Then “X0=”?A:“Y0=”?B:“C0=”?C:“1/R0=”?D:“1/RI=”?E:“SP=”?F:“EP=”?G:Ifend
Q=2=>Goto 1
Lbl 0 :“KM=,<0 Stop”?H:H<0=>Stop:“PJ=”?O:“PY=”?L
Lbl 2:Z=1=> Prog“01”:Z=2=> Prog“02” 选择数据库文件,可增加
H- F→X:0.5(E-D)÷(G-F)→N
C+(XD+NX2)*180÷π→P:P<0=>P+360→P:P>360=>P-360→P
A+∫(cos(C+(XD+NX2)*180÷π),0,X)+Lcos(P+O)→U
B+∫(sin(C+(XD+NX2)*180÷π),0,X)+Lsin(P+O)→V
Q=2=>Goto 3:Cls:Fix 3
"Xn=":Locate 4,1,U:"Yn=": Locate 5,2,V:“FWJ=”:P▶DMS◢
Norm 2:Cls:Goto 0
Lbl 1:“XD=,<0,STOP”?R:R<0=>Stop:“YD=”?S
“KMDG=”?H :90→O:0→L:Goto 2 (H线路范围内的任意桩号)
Lbl 3:Pol(R-U,S-V):J<0 => J+360→J
If abs(Icos(J-P))≤0.001:Then P-J>180=> J+360→J: P-J<-180=> P+360→P: P-J>0=> -I→I:Goto 4: Ifend:H+Icos(J-P)→H:Goto 2
Lbl 4:Cls:Fix 3
“KM=”: Locate 4,1,H:“PY=”: Locate 4,2,I◢
Norm 2:Cls:Goto 1