5800计算器竖曲线程序
5800 计算程序

5800 计算程序Fx-5800 计算器程序QXJS-000 主程序Fix 3:Deg:Lbl 4:“1.SZ=>XY”:“2.XY=>SZ”: “ 1,2= ” ? →Q:” LICHENG= ” ? →S:Prog“QXJSSUB0” ↙Lbl 0:IfQ=1:Then Goto1:IfEnd:IfQ=2:ThenGoto2:IfEnd ↙Lbl 1:”OUT JL=”? → Z: “OUT JD=”?G:Prog“QXJSSUB1”:“XZB=”:N →N ◢“YZB=”:E →E ◢“QXFWJ=”:F →F:F ▲ DMS ◢Goto4 ↙Lbl 2: “XZB=”? →B: “YZB=”? →C:B→N:C→E:Prog“QXJSSUB2”: “LICHENG=”:S →S ◢“OUT JL=”:Z →Z ◢Goto4 ↙说明:Q: 代表正反算,其中 1 为正算, 2 为反算; S: 代表里程; Z :代表偏移距离; G :代表偏移角度(以线路前进方向为 X 方向,顺时针转为正; N : X 坐标; E : Y 坐标; F :切线方位角;QXJSSUB0 ( 数据库 )Goto1 ↙Lbl 1IF S<157687.528:THEN2884169.2517→U:471475.6573→V:157547.528→O:98 ° 32 ′ 43.08″ →A:140→L:10^45→P:10000→R: Return:IfEnd ↙IF S<157993.605:THEN2884148.1260→U:471614.0539→V:157687.528→O:98 ° 56 ′ 46.93″ →A:306.0771→L:10000→P:10000→R: Return:IfEnd ↙IF S<158133.605:THEN2884095.9086→U:471915.6318→V:157993.605→O:100 ° 42 ′ 0.22″ →A:140→L:10000→P:10^45→R: Return:IfEnd ↙IF S<163641.879:THEN2884069.2735→U:472053.0744→V:158133.605→O:101 ° 6 ′ 4.07″ →A:5508.274→L:10^45→P:10^45→R: Return:IfEnd ↙IF S<163781.879:THEN2883008.7030→U:477458.2815→V:163641.879→O:101 ° 6 ′ 4.08″ →A:140→L:10^45→P:10000→R: Return:IfEnd ↙IF S<164195.661:THEN2882981.4268→U:477595.5984→V:163781.879→O:101 ° 30 ′ 7.93″ →A:413.7833→L:10000→P:10000→R: Return:IfEnd ↙IF S<164335.661:THEN2882890.5519→U:477999.2492→V:164195.6623→O:103 ° 52 ′22.82 ″ →A:140→L:10000→P:10^45→R: Return:IfEnd ↙IF S<171831.142:THEN2882856.3502→U:478135.0069→V:164335.6623→O:104 ° 16 ′26.67 ″ →A:7495.481→L:10^45→P:10^45→R: Return:IfEnd ↙IF S<171961.1406:THEN2881008.2613→U:485399.0830→V:171831.1404→O:104 ° 16 ′26.65 ″ →A:130→L:-10^45→P:-11000→R: Return:IfEnd ↙IF S<172204.6898:THEN2880976.4567→U:485525.1322→V:171961.1406→O:103 ° 56 ′7.81 ″ →A:243.5492→L:-11000→P:-11000→R: Return:IfEnd ↙IF S<172334.6898:THEN2880920.4244→U:485762.1431→V:172204.6898→O:102 ° 40 ′0.93 ″ →A:130→L:-11000→P:-10^45→R: Return:IfEnd ↙说明: S :里程; 157547.528→O 为线元终点里程;2884169.2517→U 为线元起点 X 坐标; 471475.6573→V 为线元起点Y 坐标; 98 ° 32 ′ 43.08 ″ →A 线元起点切线方位角; 0^45→P 线元起点半径(左转为负右转为正); 10000→R 线元终点半径(左转为负右转为正)QXJSSUB1 正算子程序0.5 ( 1÷R-1÷P ) ÷L→D:S-O→X ↙U+∫(cos(A+(X÷P+DX2)×180÷π,0,X)→N ↙V+∫( sin(A+(X÷P+DX2)×180÷π,0,X)→E ↙A+(X÷P+DX2)×180÷π→F ↙N+Zcos(F+G) →N:E+Zsin(F+G) →EReturnQXJSSUB2 反算子程序Lbl 1:0→Z : 1→Q : Prog“QXJSSUB0”: 0.5 ( 1÷R-1÷P )÷L→D:S-O→X ↙U+∫(cos(A+(X÷P+DX2)×180÷π,0,X)→N ↙V+∫( sin(A+(X÷P+DX2)×180÷π,0,X)→E ↙A+(X÷P+DX2)×180÷π→F ↙N+Zcos(F+90) →N:E+Zsin(F+90) →E :Pol(N-B+10^(-46), E-C+10^(-46)):Isin(F-90-J) →W:S+W→S ↙IfAbs(W)>0.0001 :Then Goto1:IfEnd ↙Lbl 2: 0→Z : Prog“QXJSSUB1”:(C-E) ÷sin(F+90) →ZReturnH (高程主程序)Fix 3 : Lb1 3: ” LICHENG= ” ?Z: Prog“SQXZL”:(P-Q) ÷Abs(P-Q) →W ↙If Z<(H-T):Then(H-Z) × P →X:Goto 2:IfEnd ↙If Z ≥ (H-T) And Z<H:Then (H-Z) × P+(Z-H+T)2 ÷ (2WR)→X:Else (H+T-Z)2 ÷ (2WR)-(Z-H) × Q→X: Goto 2:IfEnd ↙Lb1 2: ” GAO CHENG= ” D-X →X ◢Goto 3SQXZL (竖曲线数据库)Goto 1Lb1 1If Z ≤ 157893.75:Then25000→R:93.75→T:157800→H:421.977→D:-0.0045→P:0.003→Q:Return:IfEnd ↙If Z ≤ 159000:Then25000→R:150→T:158850→H:425.127→D:0.003→P:0.015→Q:Return:IfEnd↙If Z ≤ 165017.5:Then25000→R:117.5→T:164900→H:515.877→D:0.015→P:0.0056→Q:Return:IfEnd ↙If Z ≤ 168207.5:Then25000→R:107.5→T:168100→H:533.797→D:0.0056→P:-0.003→Q:Return:IfEnd ↙If Z ≤ 172175:Then25000→R:75→T:172100→H:521.797→D:-0.003→P:0.003→Q:Return:IfEnd ↙说明: 157893.75 代表竖曲线终点里程, 25000→R 代表竖曲线半径; 93.75→T 代表竖曲线切长; 421.977→D 代表边坡点标高(未改正之前); -0.0045→P 代表前段坡度,上坡为正,下坡为负;0.003→Q 代表后段坡度,上坡为正,下坡为负;Fx-5800路线高程程序GCQX-000 主程序Lbl 1: Prog“GCQX-SUB000” ↙If R>10^8: Then B+(S-A)(D-B) ÷(C-A)→H: Goto2: IfEnd↙Pol(D-B,C-A):J-Sin-1(I÷2÷R)→F:B+R Cos(F+90)→X:A+RSin(F+90)→Y: Sin-1((S-Y) ÷R)→M:X+R Cos(M)→H: Goto2↙Lbl 2: “H=”:H: Goto1GCQX-000 数据库Goto0↙Lbl 0↙If S<***: Then ***→A(线元起点里程): ***→B(线元起点高程):***→R(线元半径左-右+): ***→C(线元终点里程): ***→D(线元终点高程): Return:IfEnd↙If S<***: Then ***→A: ***→B: ***→R: ***→C: ***→D: Return:IfEnd↙………………………..为了便于解读,每增加一个线元增加一行语句,每增加一条曲线增加一个Lbl,每增加一个工程增加一个文件。
5800万能程序,平曲线+竖曲线+隧道超欠挖

1、主程序(TYQXJS)Lbl 4:"1SZ => XY,2XY=>SZ" :?N:?S:Prog"SUB0"←┘1÷P→C:(P-R)÷(2HPR)→D:180÷π→E:N=1=>Goto 1:Goto 2:←┘Lbl 1:"DZ"?:Abs(S-O)→W:Prog"SUB1":"XS":X◢"YS":Y◢Prog"SQX"(竖曲线的程序名)F-90→F:"FS=":F DMS◢Prog"CQW"(隧道超欠挖程序名)Goto 4←┘Lbl 2:"X"?X:"Y"?Y:X→I:Y→J:Prog“SUB2”:O+W→S:"S":S◢"Z":Z◢Prog"CQW"Goto 4←┘2、正算子程序(SUB1)0.1739274226→A:0.3260725774→B:0.0694318442→K:0.3300094782→L:1-L→F:1-K→M:G+QEKW(C+KWD)→Z[1]G+QELW(C+LWD)→Z[2]G+QEFW(C+FWD)→Z[3]G+QEMW(C+MWD)→Z[4]A×COS(Z[1])→XX+BCOS(Z[2])→XX+BCOS(Z[3])→XX+ACOS(Z[4])→XU+WX→XASin(Z[1])→YY+BSin(Z[2])→YY+BSin(Z[3])→YY+ASin(Z[4])→YV+WY→YG+QEW(C+WD)+90→F:X+ZCos(F)→X:Y+ZSin(F)→Y:3、反算子程序(SUB2)G-90→T:(Y-V)cos(T)-(X-U)sin(T)→W:Abs(W)→W:θ→ZLbl 0:Prog "SUB1":T+QEW(C+WD)→L:(J-Y)cos(L)-(I-X)sin(L)→Z:If Abs(Z)<1E-6:(注:此处1E-6可输入0.000001)Thenθ→Z:Prog "SUB1":(J-Y)÷sin(F)→ZElse W+Z→WGoto 0:If End4、SUB0(数据库子程序)Goto 1←┘Lbl 1:If S<***(线元终点里程):Then***→G(线元起点方位角):***→O (线元起点里程):***→U (线元起点X坐标):***→V(线元起点Y坐标):***→P (线元起点曲率半径):***→R (线元终点曲率半径):***→H (线元起点至终点长度):0或1、-1→Q:(当线元往右偏时,Q=1;当线元往左偏时,Q=-1,当线元是直线时,Q=0)Return:If End←┘5、CQW(程序名隧道超欠挖)"SCH"?A:"R"?G:"HSJ"?H:"DZ"?Z:√((A-H-设计标高到圆心的高度)²+(Z`隧道中线到测设线的距离)²→DG-D→Z[4]"CW-,QW+":Z[4]◢(SCH:实际测量的高程;R:上导的开挖半径;超挖为-;欠挖为+)6、SQX(竖曲线程序名)If S<边坡终点里程And S≥变坡起点里程:Then大里程坡度→A:小里程坡度→B 变坡点里程→O:变坡点高程→G:半径→R:Prog"Z-SQX":If End7、Z-SQX(子程序名)O-S→L:A-B→W:Abs(R*W÷2)→T:O-T→M:O+T→P:If S≤M:Then G-L*B→H:Goto 5:Else I f S≤O:Then Goto 3:Else If S ≤P:Then Goto 4:If End:If End:If EndLbl 3:If W>O:Then G+(M-S)²÷2÷R-L*B→H:Goto 5:Else If W<O:Then G-(M-S)²÷2÷R-L*B→H:Goto 5:If End:If EndLbl 4:If W>O:Then G+(S-P)²÷2÷R-L*A→H:Goto 5:Else If W<O:Then G-(S-P)²÷2÷R-L*A→H:Goto 5:If End:If EndLbl 5:H→H:"H":H◢规定:(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。
自编卡西欧fx-5800p全线竖曲线计算程序(20140501更新版)

数据库格式说明:
If P≥第n竖曲线与第n-1竖曲线间直线任一点桩号 And P≤第n竖曲线与第n+1竖曲线间直线任一点桩号:Then [[第n竖曲线桩号,第n竖曲线高程,第n竖曲线曲率半径,第n-1竖曲线变坡点桩号,第n-1竖曲线变坡点高程,第n+1竖曲线变坡点桩号,第n+1竖曲线变坡点高程]]:Goto 1:IfEnd↙
特别提醒:第13行中的字体较大的“2”表示平方。
竖曲线计算程序(SQX-2)说明:
1、本程序以毕节市碧海路K2+000~K4+900段为例编制,但没考虑人行道标高。
2、因与全线中边桩坐标正反算程序(ROAD-2)配套使用,为避免自定义变量干扰默认值,自定义变量尽可能采用额外变量或与ROAD-2统一。
如单独使用,可重新选择自变量,以减少程序输入的工作量。
在路基范围内测得某一点坐标和高程,通过运用ROAD-2反算功能,计算出测点桩号和偏距,然后退出ROAD-2然后执行SQX-2,竖曲线计算程序运行时默认该测点的桩号和偏距,可快速计算该点的填挖值,在施工测量中非常方便。
3、计算曲线上高程时,竖距×(转坡脚÷转坡角的绝对值),有效避免了凹型曲线与凸型曲线的设计值需用切线标高分别加、减竖距的两种可能。
4、采用数据库子程序并采用矩阵赋值,减少了不同设计路段使用程序时修改程序的工作量。
数据库中不需要输入纵坡,而程序自行根据变坡点进行计算,减少参数同时提高了计算精度。
5、数据库中第一行,可根据超高缓和段桩号,修改程序语言,确定全线各段的横坡。
初学卡西欧,各位高手不吝赐教!。
5800全线竖曲线程序(带数据库)

5800全线竖曲线程序(带数据库)
Lbl 0:“DK”?L回车
If L﹤0:Then Goto 4:IfEnd回车
If L﹤下一线元起点里程(本线元终点里程):Then 本线元起点里程→E:本线元起点内轨顶面高程→K:本线元坡度→F:Goto 3:IfEnd 回车
If L﹤下一线元起点里程:Then 本线元起点里程→E:本线元起点内轨顶面高程→K:竖曲线半径→R:本线元坡度→F:Goto 2:IfEnd回车。
Goto 0:If End回车(第N-1线元数据要素)。
Goto 0:If End回车(第N线元数据要素)
注:1、有竖曲线时凸曲线时返回Goto 2:IfEd回车
2、有竖曲线时凹曲线时返回Goto 1:IfEd回车
3、一般坡度时返回Goto 3:IfEnd回车
Lbl 1:L-E→S:“H=”:S*tan(tan1-(F)+90*S÷(∏*R))+K→H▲Goto 4回车
Lbl 2:L-E→S:“H=”:S*tan(tan1-(F)-90*S÷(∏*R))+K→H▲Goto 4回车
Lbl 3:“H=”:K+(L-E)*F→H▲
Goto 4回车
Lbl 4:“LH=”?J:“I”?I:“D”?D:H+J+I*D→V回车
“BH=”:V→V▲
Lbl 5:Goto 0:IfEnd回车
说明:
输入部分:1、DK?为所求的里程;
2、LH?为所求点高程距内轨顶面的垂直距离;
3、I?为所求的横坡坡比;
4、D?为所求高程点距中线的边距。
显示结果:1、所求里程对应的内轨顶面高程;
2、BH=为所求点或边坡点的高程
席崇辉
2010年3月26日。
5800高程计算(含超高)

BG:(标高计算式程序)Lbl 1:Abs(.01(I-J)R÷2)-﹥T:If Z≥L+T:Then Goto 4:IfEndIf Z≥L-T:Then Goto 3:IfEndLbl 2:H+.01(Z-L)I-﹥B: Goto 5Lbl 3:H+.01(Z-L)I+(J-I)(Z+T-L)2÷(2R Abs(J-I)) -﹥B:Goto 5 Lbl 4:H+.01(Z-L)J-﹥B:Goto 5Lbl 5:BH——竖曲线顶点高程I——后坡J——前坡L——竖曲线顶点桩号B——设计高程R——圆曲线半径GX:(挂线高计算主程序)Lbl 0:“U=”?U: “Z=”?Z:If U=0: Then ?L:?H:?I:?J:?R: “Z=”?Z:Prog“BG”:“B=”:B▲“P=”?P:P:Goto 4: IfEndIf U=1: Then Prog“L1”:Prog“PY”:Goto 1: IfEndIf U=2: Then Prog“L2”:Prog“PY”:Goto 1: IfEndIf U=3: Then Prog“L1”:Prog“PZ”:Goto 1: IfEndIf U=4: Then Prog“L2”:Prog“PZ”:Goto 1: IfEndIf U=5: Then Prog“L3”:Prog“PZ”:Goto 1: IfEndIf U=6: Then Prog“LA”:Goto 2: IfEndIf U=7: Then Prog“LB”:Goto 2: IfEndIf U=8: Then Prog“LC”:Goto 2: IfEndIf U=9: Then Prog“LD”:Goto 2: IfEndIf U=10: Then Prog“LE”:Goto 2: IfEndLbl 1:Prog“BG”:Prog“HP”:“B=”:B▲“P=”:P▲Goto 3Lbl 2:Prog“BG”:“B=”:B▲“P=”:?P :Goto 3Lbl 3: “S=”?S: “W=”?W: “E=”?E: “N=”?N:Lbl 4:((B-W) -(S-N) ÷1000+.01P(E-1))×1.31+.2-﹥M: “GX=”:M▲If E≠13.5: Then Goto 3:Else E=13.5: “V=”?V:Z+V-﹥Z: Goto 0: IfEndTX:(抬线高计算主程序)Lbl 0:“U=”?U: “Z=”?Z:If U=0: Then ?L:?H:?I:?J:?R: “Z=”?Z:Prog“BG”:“B=”:B▲“P=”?P:P:Goto 4: IfEndIf U=1: Then Prog“L1”:Prog“PY”:Goto 1: IfEndIf U=2: Then Prog“L2”:Prog“PY”:Goto 1: IfEndIf U=3: Then Prog“L1”:Prog“PZ”:Goto 1: IfEndIf U=4: Then Prog“L2”:Prog“PZ”:Goto 1: IfEndIf U=5: Then Prog“L3”:Prog“PZ”:Goto 1: IfEndIf U=6: Then Prog“LA”:Goto 2: IfEndIf U=7: Then Prog“LB”:Goto 2: IfEndIf U=8: Then Prog“LC”:Goto 2: IfEndIf U=9: Then Prog“LD”:Goto 2: IfEndIf U=10: Then Prog“LE”:Goto 2: IfEndLbl 1:Prog“BG”:Prog“HP”:“B=”:B▲“P=”:P▲Goto 3Lbl 2:Prog“BG”:“B=”:B▲“P=”:?P :Goto 3Lbl 3: “S=”?S: “W=”?W: “E=”?E: “N=”?N:Lbl 4:(B-W)+.01P(E-1) -(S-N) ÷1000-﹥M: “TX=”:M▲If E≠0: Then Goto 3:Else E=0: “V=”?V:Z+V-﹥Z: Goto 0: IfEnd E——距中桩距离N——前视读数S——视线高U——条件语句V——桩号递进参数W——结构层厚度Z——所求桩号HP:(超高缓和段前后等长的线性横坡计算子程序)If Z≤A:Then -2-﹥P: Goto1:IfEndIf Z≤A+C:Then -2+(F+2)(Z-A) ÷C-﹥P: Goto1:IfEndIf Z≤A+C+O:Then F-﹥P: IfEndIf Z≤A+O+2C:Then -2+(F+2)(A+O+2C-Z) ÷C-﹥P: Goto1:IfEndIf Z>A+O+2C:Then -2-﹥P: Goto1:IfEndLbl 1:本程序超高是绕中轴旋转起讫点的横坡是-2(设定中央分隔带边缘高于路面外侧边缘横坡为负)A——前超高缓和段起点桩号C——超高缓和段长度F——全超高段横坡O——全超高长度P——所求桩号横坡HP1 (超高缓和段前后不等长的线性横坡计算子程序):If Z<A: Then -2→P: Goto 1:IfEndIf Z≤A+L:Then -2+(F+2)(Z-A)/L→P: Goto 1:IfEndIf Z≤A+L+ O: Then F→P: Goto 1:IfEndIf Z≤A+ L+O+C: Then -2+(F+2)(A+ O–Z)/C→P: Goto 1:IfEndIf Z>A + L+O+C: Then -2→P: Goto 1:IfEnd本程序超高是绕中轴旋转起讫点的横坡是-2(设定中央分隔带边缘高于路面外侧边缘横坡为负)A——前超高缓和段起点桩号L——前超高缓和段长度C——后超高缓和段长度F——全超高段横坡O——全超高长度P——所求桩号横坡HP2:(3次抛物线性横坡计算子程序)If Z≤A:Then P-﹥P: Goto1:IfEndIf Z≤Q:Then (Z-A)÷(Q-A)-﹥K: P+(3K2-2K3)(F-P) -﹥P: Goto1:IfEndIf Z>Q:Then F-﹥P: Goto1:IfEndLbl 1:本程序超高是绕中轴旋转(设定中央分隔带边缘高于路面外侧边缘横坡为负)A——横坡变化段起点桩号; P——(是过渡值)横坡变化段起点横坡Q——横坡变化段终点桩号;F——横坡变化段终点横坡P——所求桩号横坡L1..或LA...等:(竖曲线数据库)If Z≤××× :Then ×××-﹥I : ×××-﹥J :×××-﹥L :×××-﹥H :×××-﹥ R : Goto 1: IfEnd………Lbl 1:PY或PZ(横坡数据库)If Z≤Q+O:Then ×××-﹥A: ×××-﹥Q:×××-﹥P :×××-﹥F : Goto 1: IfEn d………Lbl 1:谢谢发贴:+26 分【测量空间】[0查看楼主其它文章<<返回→回复内容只查看楼主与本人回复沙发:老第楼主11-1-22 12:57L1,2,3.A,B,C....等是线路命名子程序库,如断链,分离式路基所需而设。
5800计算器程序(SQX,YQX,HHQX,ZBZS,ZBFS,XDZBZH)

5800计算器程序直线坐标反算:ZBFSLbI 0←┛“XZ”?P:“YZ”?U:“XH”?X:“YH”?Y←┛Sin-1((Y-U)÷(√((X-P) 2+(Y-U) 2 ))→N:If X-P<0:Then180º-N→N: Ifend←┛If N<0: Then N+360º→N : Ifend←┛“N=”: N►DMS◢“S=”: √((X-P) 2+(Y-U) 2 ) ◢Goto 0←┛直线坐标正算:ZBZSLbI 0←┛“X0”?A:“Y0”?B:“N”?C:“E”? E: “K1”? D:“K2”? F←┛“X=”:A+(F-D)cos(C)+Ecos(C+90) →X◢“Y=”:B+(F-D)sin(C)+Esin(C+90) →Y◢Goto 0←┛相对坐标转换:XDZBZH“ZX”?A: “ZY”?B: “K1”?T: “E1”?E: “ZN”?N←┛LbI 1←┛“X”?C: “Y”?D←┛Pol(C-A,D-B):J≤0=>J=J+360←┛“K=”:T+I*cos(J-N)◢“E=”:E+I* sin(J-N)◢Goto 1←┛显示说明:Z X?,ZY?(HZ点或直线起点坐标),K1?(HZ点或直线起点里程)E1?(已知点距中桩距离,左“-”右“+”),ZN?(HZ点或直线起点切线方位角),X,Y?(待求点坐标),输出部分:K=****.****,E=****.****,(待求点相对坐标即里程边距)。
缓和曲线:LbI 0←┛“W”?W:“XZ”?A:“YZ”? B:“NQ”?C:“L0”?D:“R”?R:“K1”?K:“K2”?T:“E”?E←┛T-K→F←┛F2*180÷(2RDπ)→G←┛F-F^(5)÷(40R2D2)→H←┛J=F^(3)÷(6RD)-F^(7)÷(336R^(3)*D^(3))→J←┛√(H2+J2)→L←┛tan-1(J÷H)→O←┛“NT=” :C+W G→N:N►DMS◢C+WG-90W→V←┛“X=” :A+Lcos(C+WO)+Ecos(V)→X◢“Y=”:B+Lsin(C+WO)+Esin(V)◢Goto 0←┛显示说明:W?(左转为-1,右转为1)XZ?,YZ?(输缓和曲线起点坐标(ZH)或HZ点坐标)NQ?(输缓和曲线起点切线方位角)L0? (输缓和曲线长)R?(缓和曲线终点曲率)K1?(ZH点里程或HZ点里程)K2?(待求点里程)E?(待求点距中桩距离,左为右负为正)输出部分:NT=xxxxxx(待求点切线方位角),X=xxxxxx.xxxx,Y=xxxxxx.xxxx(待求点坐标)。
竖曲线计算程序供参考

竖曲线计算程序本程序只需按程序提示输入三个变坡点的桩号和高程,再输入竖曲线半径,即可随心所欲的计算任意点的纵断高程。
可以大大减少使用者在现场的工作量。
一、程序清单1、CASIO Fχ5800 计算程序“BP1”?A: “BP1H”?G: “BPD”?B: “BPDH”?I :LbI 0: “BP2”?→C: “BP2H”?→J: “R”?→R: B-A→D: C-B→F: I-G→K: J-I→M: K ÷D→N: M÷F→O :N-O→P: “T”:Abs (RP÷2) →T▲“E”:T²÷﹙2R) ▲B-T→W :B+T→X:G+N(W-A)→Y﹕I+OT→Z︰LbI 1“KM”?→Q: Q>X=>Goto 2: While Q﹤W﹕Q-A→S︰G+SN→V▲Goto 1: WhileEnd: While Q≦B And Q>W﹕Q-W→S︰If P﹥0∶Then Y+SN- S²÷(2R)→V▲Else Y+SN+S²÷(2R)→V▲IfEnd∶Goto 1: WhileEnd: While Q≦X And Q>B﹕X-Q→S︰If P﹥0∶Then Z-SO- S²÷(2R)→V▲Else Z-SO+S²÷(2R)→V▲IfEnd∶Goto 1: WhileEnd: LbI 2: B→A: C→B: I→G J→I :Goto 02、CASIO Fχ4500 4800计算程序LbI 0: {CJR}:A“BP1”:G “BP1H” :B “BPD” :I “BPDH” : C“BP2”: J“BP2H”:D=B-A: F=C-B: K=I-G:M= J-I: N=K/D: O=M/F :P=N-OT=Abs (RP÷2) ▲E=T²÷﹙2R) ▲W=B-T:X=B+T:Y=G+N(W-A)﹕Z=I+OTLbI 1:{Q}:Q“KM”:Q>X=>Goto 2⊿Q﹤W=>S=Q-A︰V=G+SN▲⊿Q≦B=> Q>W=>S=Q-W: P﹥0=>V= Y+SN-S²/(2R)▲≠> V=Y+SN+ S²/(2R)▲⊿⊿⊿Q≦X => Q>B=>S=X-Q︰P>0 =>V=Z-SO-S²/(2R)▲≠>V= Z-SO+ S²/(2R)▲⊿⊿⊿Goto 1LbI 2: A=B:B=C: G=I:I=J :Goto 03、程序提示符号含义及程序使用说明BP1 BP1H-------前一变坡点里程桩号及高程;BPD BPDH-------竖曲线变坡点里程桩号及高程;BP2 BP2H-------后一变坡点里程桩号及高程;R----竖曲线半径T-----切线长;E-----外矢距;ZXG-----计算中线高程首先按程序提示输入7个参数,计算前一变坡点至竖曲线终点的纵段高程。
5800竖曲线

主程序[SQ-BG]“I1”?M:“I2”?N:?R:“BPK”?Q:“BPH”?W0.01M→M:0.01N→N:tan-1(M)-tan-1(N→A:If A<0:Then -1→O:Else 1→O:IfEnd:RAbs(M-N→L:L÷2→T:Q-L÷2→C:C+L→D:T2÷(2R→E:Cls:Locate 1,1,“AO-TU=”:Locate 12,2, O:Locate 1,3,“E=”:Locate 12,4,E◢Cls:Locate 1,1,“L=”:Locate 10,1, L:Locate 1,2,“T=”:Locate 10,2,T:Locate 1,3,“QDK=”:Locate 9,3,C:Locate 1,4,“ZDK=”:Locate 9,4,D◢Cls:Lbl 0:Fix 3:?K:If K≤C:Then W-M(Q-K→H:Else If K≤Q:Then K-C→A:Rtan(180A÷(πR →S:W-TM+SM-S2O÷(2R→H:Else If K≤D:Then D-K→A:Rtan(180A÷(πR→S:W+TN-SN- S2O÷(2R→H:Else K>D=>W+N(K-Q→H:IfEnd:IfEnd:IfEnd:Cls:Locate 1,3,“GH=”:Locate 10,4,H◢Goto 0竖曲线要素程序输入:I1---竖曲线前坡坡度(上坡为正,下坡为负例:-2.316% 输入-2.316 )I2---竖曲线后坡坡度(上坡为正,下坡为负)R---竖曲线半径BPK---竖曲线变坡点桩号BPH----竖曲线变坡点高程K---桩号结果:AO-TU=1时为凸曲线,AO-TU=-1时为凹曲线E=外距L=竖曲线长度T=竖曲线切线长度QDK=竖曲线起点桩号ZDK=竖曲线终点桩号GH=已改正的桩号K的中桩高程真似されているQQ:79868685高程放样程序主程序名GCFYFix 3:40→DimZ定义小数位保留数位(3表示保留了3位小数)和额外变量Lbl 1”KP=”? →Z[4]输入桩号Prog“GC1”“H”:Z[5] ◢显示高程Goto 1程序名GC1Prog “GC3”Z[8]÷100→Z[8]: Z[9]÷100→Z[9]Z[10]Abs(Z[9]- Z[8])÷2→Z[31]If Z[4]<Z[6] Or Z[4]>Z[7]: Then Cls: Locate 6,2,"KX"◢当不在计算范围是后屏幕显示kx并停止程序Stop:IfEndIf Z[9] > Z[8]:Then 1→Z[32]:Else -1→Z[32]:IfEndIf Z[4]< Z[29]:Then - Z[8]→Z[34]:Else Z[9]→Z[34]:IfEnd:Abs (Z[29]- Z[4])→Z[33]If Z[33]> Z[31]:Then Z[30]+ Z[34] × Z[33]→Z[5] : Else Z[30]+Z[34] ×Z[33]+ Z[32] ×(Z[31]-Z[33])²÷2÷Z[10]→Z[5]程序名GC2Mat C[1,1] →Z[6]: Mat C[1,2] →Z[7]: Mat C[1,3] →Z[8]: Mat C[1,4] →Z[9]: Mat C[1,5] →Z[10] : Mat C[1,6] →Z[29] : Mat C[1,7] →Z[30]程序名GC3If Z[4]≤(下一竖曲线起点里程):Then[[(上一竖曲线终点里程),(下一竖曲线起点里程),(本竖曲线小里程坡度输入%号以前的数字有正负),(本竖曲线大里程坡度%号以前的数字有正负),(本竖曲线半径) ,(本变坡点里程) ,(本变坡点高程)]] → Mat C :Prog” GC2”: Return: IfEndIf Z[4]≤(下一竖曲线起点里程):Then[[(上一竖曲线终点里程),(下一竖曲线起点里程),(本竖曲线小里程坡度输入%号以前的数字有正负),(本竖曲线大里程坡度%号以前的数字有正负),(本竖曲线半径) ,(本变坡点里程) ,(本变坡点高程)]] → Mat C :Prog” GC2”: Return: IfEndIf Z[4]≤(下一竖曲线起点里程):Then[[(上一竖曲线终点里程),(下一竖曲线起点里程),(本竖曲线小里程坡度输入%号以前的数字有正负),(本竖曲线大里程坡度%号以前的数字有正负),(本竖曲线半径) ,(本变坡点里程) ,(本变坡点高程)]] → Mat C :Prog” GC2”: Return: IfEnd………………………(无限添加)真似されているQQ:79868685。