全线高程万用计算程序(中边桩、超高) |
CASIO fx5800p全线高程计算程序 GAOCHEN 主程序 Lbl 1 “KM=,<0,Stop”:?K:K<0=>Stop:“PY=”?L:Prog”GK” C-D→E:Abs(RE/2)→T:R(Abs(E)/E)→R If K≤B-T:Then 0→H:Else:If K≥B+T Then 0→H:D→C:Else K-B+T→H:Ifend:Ifend A-(B-K)C-H2/(2R)→G:Cls “KM=”:Locate 4,1,K:Locate 10,1,“PY=”:Locate 13,1,L:Fix 3 “H=”:Locate 4,2,G Prog “PODU”:(E-B)/(D-A)(K-A)+B→I:(F-C)/(D-A)(K-A)+C→J “HL=”:G+IL→X:Locate 4,3,X:Locate 11,3,“I=”:Locate 13,3,I*100 “HR=”:G+JL→Y:Locate 4,4,Y:Locate 11,4,“I=”:Locate 13,4,J*100◢ 显示中边桩高程 Cls:Norm 2:“BM+HS≤0,Goto 1”?Z:Z≤0=> Goto 1:Cls (输入视线高) “KM=”:Locate 4,1,K:Locate 10,1,“PY=”:Locate 13,1,L:Fix 3 “QSM=”: Locate 6,2,Z-G (显示中桩读数) “QSL=”: Locate 6,3,Z-X (显示左桩读数) “QSR=”: Locate 6,4,Z-Y◢ (显示右桩读数) Norm 2:Cls:Goto1 (后面可加已知视线高计算读数部分,不想计算读数则视线高输入0或负数如不想显示麻烦,可将Locate语句去掉) 以下两个子程序不需运行,只是两个的数据库赋值程序,字母重复不影响计算结果 GK 数据库子程序 If K≤76004:Then 622.0→A:75400→B:-0.005→C:-0.026→D:20000→R:Return:Ifend If K≤77150:Then 602.350→A:76190→B:-0.026→C:0.005→D:12000→R:Return:Ifend If K≤78420:Then 608.300→A:77380→B:0.005→C:--0.018→D:20000→R:Return:Ifend If K≤79310:Then 585.260→A:78660→B:-0.018→C:-0.024→D:80000→R:Return:Ifend If K≤80518.50:Then 5.380→A:79530→B:-0.024→C:-0.016→D:55000→R:Return:Ifend If K≤82230:Then 545.340→A:80720→B:-0.016→C: 0.015→D:13000→R:Return:Ifend PODU 计算坡度子程序 If K≤75884.442:Then 75000→A: -0.02→B:-0.02→C:75984.442→D: -0.02→E:-0.02→F: Return:Ifend(直线段) If K≤75984.442:Then 75884.442→A: -0.02→B:-0.02→C:75984.442→D: -0.03→E:0.03→F: Return:Ifend(JD66) If K≤752.111:Then 75984.442→A:-0.03→B:0.03→C:752.111→D:-0.03→E:0.03→F: Return:Ifend(JD66) If K≤76552.111:Then 752.111→A:-0.03→B:0.03→C:76552.111→D:-0.02:-0.02→F: Return:Ifend(JD66) If K≤78271.813:Then 76552.111→A: -0.02→B:-0.02→C:78271.813→D: -0.02→E:-0.02→F: Return:Ifend(直线段) If K≤78371.813:Then 78271.813→A:-0.02→B:-0.02→C:78371.813→D:-0.03→E:0.03→F: Return:Ifend(JD67) If K≤78870.831:Then 78371.813→A:-0.03→B:0.03→C:78870.831→D:-0.03→E:0.03→F: Return:Ifend(JD67) If K≤770.831:Then 78870.831→A:-0.03→B:0.03→C:770.831→D:-0.02→E:-0.02→F: Return:Ifend(JD67) If K≤79284.976:Then 770.831→A: -0.02→B:-0.02→C:79284.976→D: -0.023→E:-0.02→F: Return:Ifend(直线段) If K≤79404.976:Then 79284.976→A:-0.02→B:-0.02→C:79404.976→D:0.04→E:-0.04→F: Return:Ifend(JD68) If K≤79687.747:Then 79404.976→A:0.04→B:-0.04→C:79687.747→D:0.04→E:-0.04→F: Return:Ifend(JD68) If K≤79767.747:Then 79687.747→A:0.04→B:-0.04→C:79767.747→D:0→E:0→F: Return:Ifend(JD68) If K≤79847.747:Then 79767.747→A:0→B:0→C:79847.747→D:-0.04→E:0.04→F: Return:Ifend(JD69) If K≤80232.429:Then 79847.747→A:-0.04→B:0.04→C:80232.429→D:-0.04→E:0.04→F: Return:Ifend(JD69) If K≤80312.429:Then 80232.429→A:-0.04→B:0.04→C:80312.429→D:0→E:0→F: Return:Ifend(JD69) If K≤80392.429:Then 80312.429→A:0→B:0→C:80392.429→D:0.04→E:-0.04→F: Return:Ifend(JD70A)结果显示: 高程显示 KM=0000.000 PY=0.000 H= 00.000 HL=00.000 I=-1.5 HR=00.000 I=-1.5 读数显示 KM=0000.000 PY=0.000 QSM= 00.000 QSL= 00.000 QSR= 00.000 |