好文档 - 专业文书写作范文服务资料分享网站

fx-5800p全线坐标正反算带高程计算程序(线元法)

天下 分享 时间: 加入收藏 我要投稿 点赞

曲线任意里程中边桩坐标正反算(CASIO fx-5800P计算器)程序

一、

程序功能及原理

1.功能说明:本程序由一个主程序(TYQXJS)和五个子程——正算子程序(SUB-ZS)、反算子程序(SUB-FS)等构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。本修改版程序既可实现正算全线贯通,亦可实现反算全线贯通。本程序在CASIO fx-5800P计算器运行。

2.计算原理:利用Gauss-Legendre 5点通用公式正算线路中边桩坐标、线外测点至曲线元起点和终点的垂距的符号是否相异(即Dca×Dcb<0=>该测点在其线元内)进行判断并利用该线元要素反算中桩里程、支距,最后计算出放样数据。 二、源程序

1.主程序(TYQXJS)(A) Deg:fix 3 119→DimZ

“INPUT(0) Or DATA(Else)”?I

Lbl 0:“1.SZ=>XY,2.XY=>SZ,3.TF=>CK,4.SD=>FY,5.TW=>FY”?N If N=1 Or N=5:Then Goto 1

Else If N=2 Or N=3 Or N=4:Then Goto 2 Else Goto 3 IfEnd:IfEnd Lbl 1:“K(m)=”?S If S<0:Then Goto 0:IfEnd “JL(m)=”?Z

If Z≠0:Then “ANGLE→R(Deg)=”?M:IfEnd

If I=0:Then Prog “DAT1”:Else Prog “DAT2”:IfEnd

S-O→W:If W<0:Then Goto 0:Else If W>H:Then Goto 0:IfEnd:IfEnd Prog “SUB-ZS”:Prog “SUB-GC”

If Z<0:Then“XL(m)=”:X◢ “YL(m)=”:Y◢ If N=5:Then Prog “SUB-TW”:IfEnd Else If Z>0:Then “XR(m)=”:X◢ “YR(m)=”:Y◢ If N=5:Then Prog “SUB-TW”:IfEnd

Else “X(m)=”:X◢ “Y(m)=”:Y◢ “Hs(m)=”:L◢ “FWJ=”: F?DMS◢ IfEnd:IfEnd

1

Goto 1

Lbl 2:“X(m)=”?X:If X<0:Then Goto 0:IfEnd “Y(m)=”?Y

If N=3 Or N=4:Then “H(m)=”?→Z[2]:IfEnd X→Z[4]:Y→Z[5]:90→M If I=0:Then Prog “DAT1”

G+QEH(C+HD)→F:1→J:U→Z[8J]:V→Z[8J+1] G-M→A:F-M→B:Prog “SUB-ZX1”:Goto B G+M→A:F+M→B:Prog “SUB-ZX1”:Goto B:IfEnd 0→J:Lbl A: Isz J

Z[8J+3]-M→A:Z[8(J+1)+3]-M→B:Prog “SUB-ZX1” If Z[6]Z[7]<0:Then J→J:Prog“DAT1” :Goto B:IfEnd Z[8J+3]+M→A:Z[8(J+1)+3]+M→B:Prog “SUB-ZX1”

If Z[6]Z[7]<0:Then J→J:Prog “DAT1” :Goto B:Else Goto A:IfEnd Lbl B:Prog“SUB-FS” O+W→S:Prog “SUB-GC”

“K(m)=”:S◢ “Hs(m)=”:L◢ “JL(m)=”:Z◢ If N=3:Then Prog “WIDE”:IfEnd If N=4:Then Prog “SDFY”:IfEnd Goto 2

Lbl 3:“TYQXJS→END”

2. 正算子程序(SUB-ZS)(A3)

0.1184634425→A: 0.2393143352→B:0.2844444444→Z[1]:0.0469100770→K:0.2307653449→L:0.5→Z[3]

U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Z[1]cos(G+QEZ[3]W(C+Z[3]WD))+Bcos(G+QE(1-L)W(C+(1-L)WD))+Acos(G+QE(1-K)W(C+(1-K)WD)))→X

V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Z[1]sin(G+QEZ[3]W(C+Z[3]WD))+Bsin (G+QE(1-L)W(C+(1-L)WD))+Asin(G+QE(1-K)W(C+(1-K)WD)))→Y G+QEW(C+WD)+M→F

X+Zcos(F)→X:Y+Zsin(F)→Y F-M→F:If F<0:Then F+360→F:IfEnd

2

Return

3. 反算子程序(SUB-FS)

G-M→T:Abs((Y-V)cos(T)-(X-U)sin(T))→W:0→Z Lbl C:Prog “SUB-ZS”

T+QEW(C+WD)→L:(Z[5]-Y)cos(L)-(Z[4]-X)sin(L)→Z If Abs(Z)<10:Then Goto D:Else W+Z→W:Goto C:IfEnd Lbl D:0→Z:Prog “SUB-ZS”:(Z[5]-Y)÷cos(F)→Z:Return 4.高程计算子程序(SUB-GC)(A4) Prog “DAT3”

0.5RAbs(0.01(E-D))→T

If E>D:Then 1→C:Else -1→C:IfEnd If S

If L>T:Then B+WL→L:Else B+WL+C(T-L)÷2÷R→L:IfEnd Return

5. 垂距计算子程序(SUB-ZX1)

(Z[5]-Z[8J+1])cos(A)-(Z[4]-Z[8J])sin(A)→Z[6] (Z[5]-Z[8(J+1)+1])cos(B)-(Z[4]-Z[8(J+1)])sin(B)→Z[7] Return

6.曲线元要素数据库:DAT1(两条线路,可扩充为多条线路)(A1) If I=0:Then Goto E: Else If I=2:Then Goto F:IfEnd:IfEnd

J=1=>***→Z[8]:***→Z[9]:***→Z[10]:***→Z[11]:***→Z[12]:***→Z[13]:***→Z[14]:*** →Z[15]:IfEnd

J=2=>***→Z[16]:***→Z[17]:***→Z[18]:***→Z[19]:***→Z[20]:***→Z[21]:***→Z[22]:***→Z[23]:IfEnd

J=3=>***→Z[24]***→Z[25]:***→Z[26]:***→Z[27]:***→Z[28]:***→Z[29]:***→Z[30]:***→[31]:IfEnd

??????????????????.. Goto H

Lbl F: J=1=>***→Z[8]:***→Z[9]:***→Z[10]:***→Z[11]:***→Z[12]:***→Z[13]:***→Z[14]:*** →Z[15]:IfEnd

J=2=>***→Z[16]:***→Z[17]:***→Z[18]:***→Z[19]:***→Z[20]:***→Z[21]:***→Z[22]:***→

2

-6

3

Z[23]:IfEnd

J=3=>***→Z[24]***→Z[25]:***→Z[26]:***→Z[27]:***→Z[28]:***→Z[29]:***→Z[30]:***→[31]:IfEnd

(注:如有多个曲线元要素继续添加入数据库DAT1中) Goto G

Lbl E:“X0=”?U:“Y0=”?V:“S0=”?O:“F0=”?G:“LS=”?H:“R0=”?P:“RN=”?R:“Q=”?Q Lbl G:1÷P→C:(P-R)÷(2HPR)→D:180÷π→E:Return

7.隧道放样子程序:SDFY 5.5→A:8.5→B:L+1.5→C

If I=1:Then -1→K:Else 1→K:IfEnd 给左右隧道符号赋值 1.25K→F:4.25K→L:7.25K→K 给各圆心距路线的偏距赋值 Z[2]-C→D 计算测点至圆心的高差D, If D>A:Then Goto 1:Else If D<0:Then Goto 2:IfEnd:IfEnd

Z-L→E:Abs(E)→E:√(D+E)→W:W-A→T: 计算测点至圆心的平距E,实测半径W “R(m)=”:W◢ “DR(m)=”:T◢

If E≤A:Then D-√(A-E)→C:E-√(A-D)→L 计算测点水平偏移量L、垂直偏移量C “Dh(m)=”:C◢ 显示测点垂直偏移量C “DL(m)=”:L◢ 显示测点水平偏移量L Else E-√(A-D)→L “DL(m)=”:L◢ IfEnd:Return Lbl 1

Z-L→E:Abs(E)→E:√(D+E)→W:W-A→T: 计算测点至圆心的平距E,实测半径W “R(m)=”:W◢ “DR(m)=”:T◢

If E≤A:Then D-√(A-E)→C “Dh(m)=”:C◢ IfEnd:Return

Lbl 2:Abs(D)→D:Abs(Z)→Z:Abs(K)→K:Abs(F)→F If Z>K:Then Z-F→E:Else Z+K→E:IfEnd

2

22

2

2

2

2

2

2

2

2

2

4

√(D+E)→W:W-B→T

“R(m)=”:W◢ “Rc(m)=”:T◢

If E≤B:Then D-√(B-E)→C:E-√(B-D)→L 计算测点水平偏移量L、垂直偏移量C “Dh(m)=”:C◢ 显示测点垂直偏移量C “DL(m)=”:L◢ 显示测点水平偏移量L Else E-√(B-D)→L

“DL(m)=”:L◢ 显示测点水平偏移量L IfEnd:Return

8.曲线元要素判断数据库:DAT2(两条线路,可扩充为多条线路)(A2) If I=2:Then Goto A:IfEnd

If S<第一线元终点里程:Then 1→J:Prog “DAT1”:Return Else If S<第二线元终点里程:Then 2→J:Prog “DAT1”:Return Else If S<第三线元终点里程:Then 3→J:Prog “DAT1”:Return Else If S<第四线元终点里程:Then 4→J:Prog “DAT1”:Return IfEnd:IfEnd:IfEnd:IfEnd

If S≥第四线元起点里程And S<第五线元终点里程:Then 5→J:Prog “DAT1”:Return .................................

Else If S<第n线元里程:Then n→J:Prog “DAT1”:Return IfEnd:IfEnd:IfEnd:IfEnd Lbl A

If S<第一线元终点里程:Then 1→J:Prog “DAT1”:Return Else If S<第二线元终点里程:Then 2→J:Prog “DAT1”:Return Else If S<第三线元终点里程:Then 3→J:Prog “DAT1”:Return Else If S<第四线元终点里程:Then 4→J:Prog “DAT1”:Return IfEnd:IfEnd:IfEnd:IfEnd

If S≥第四线元起点里程And S<第五线元终点里程:Then 5→J:Prog “DAT1”:Return Else If S<第n线元里程:Then n→J:Prog “DAT1”:Return IfEnd:IfEnd:IfEnd:IfEnd

.................................

9.高程数据库子程序:DAT3(两条线路,可扩充为多条线路) If I=0:Then Goto A:Else If I=2:Then Goto B:IfEnd:IfEnd

If S≤46500:Then 46150→A:361.26→B:40000→R:-0.3→D:-1.2→E:Return

2

2

2

2

2

2

22

5

fx-5800p全线坐标正反算带高程计算程序(线元法)

曲线任意里程中边桩坐标正反算(CASIOfx-5800P计算器)程序一、程序功能及原理1.功能说明:本程序由一个主程序(TYQXJS)和五个子程——正算子程序(SUB-ZS)、反算子程序(SUB-FS)等构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、线元长度、起点曲率半径、止
推荐度:
点击下载文档文档为doc格式
2g6uw49nr11j03v4hzeq
领取福利

微信扫码领取福利

微信扫码分享