坐标正反算程序计算器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、
Lbl 3:"1→ZS,2→FS"?Q
Q=1=>Goto 1:Q=2=>Goto 2
Lbl 1:"CE:X"?M:"CE:Y"?F:"JL"?L:"FWJ"?A:Rec(L,A):M+I→C:F+J→D
Cls
"X=":Locate 3,1,C:"Y=":Locate 3,2,D◢
Goto 3
Lbl 2::"CE:X"?G:"CE:Y"?H:"(HOU)FY:X"?N:"(HOU)FY:Y"?E
Pol(N-G,E-H)
If J<0:Then J+360→Y:Else J→Y:IfEnd
Cls
"FY JL=":Locate 10,1,I:"FY FWJ=":Y◆DMS◢
Goto 3
进入程序运行如下:
1→ZS,2→FS? 输入1为正算,2为反算.
以输入1为例:
CE:X? 测站点X(5796.717)
CE:Y? 测站点Y(5212.569)
JL? 仪器测得的距离(321.889)
FWJ? 仪器测得的方位角(193-41-07)
得到:X=5483.966
Y=5136.414
再按EXE,输2为例:
CE:X? 测站点X(5796.717)
CE:Y? 测站点Y(5212.569)
(HOU)FY:X? 后视或放样的X(5483.966)
(HOU)FY:Y? 后视或放样的Y(5136.414)
得到:FY JL=321.889
FY FWJ=193-41-6.79
二、
Deg : Fix 3 : “XZ→0:YZ→1”?A : If A = 1: Then Goto 1 : IfEnd ↙
If A = 0 : Then “BS→0:XY→1:AND→2:DK→3:L(I)→4 ”?O : IfEnd ↙
If O = 4: Then Goto 1 : IfEnd ↙
If O = 3: Then Prog “F.2 ”: If X= 0 : Then Goto 1 : IfEnd : IfEnd ↙
If O≠1: Then “X1 ”?X : “Y1”?Y : X→Z[11]: Y→Z[12]: “X2 ”?P : “Y2”?Q : Pol( P-X , Q-Y) : If J﹤0 : Then J + 360→J : IfEnd : Cls : “S12= ”: Locate 6 ,1, I : “B12= ”: J ►DMS◣
1→B : IfEnd ↙
If O = 1: Then “XY(0) →0: ≠﹥1”? B: IfEnd ↙
Lbl 1 : If A = 1 And O = 3 :Then Prog “F.2 ”: IfEnd : Prog “Q.1 ”
子程序PPQX (给定综合曲线属性)
“ZQX →0: *** →1: *** →2 ******* ”?C ↙
If C=0: Then 100→Z[98]: n0 →Z[99]: IfEnd ↙
If C=1: Then m1→Z[98]: n1 →Z[99]: IfEnd ↙
If C=2: Then m2→Z[98]: n2 →Z[99]: IfEnd ↙
*******
Prog “PQX ”
其中: mi为第i条综合曲线矩阵变量起始单元,(第1条综合曲线矩阵变量起始单元应自100开始,以便其他程序临时使用100以前的矩阵变量,综合曲线中每一基本单元需8个矩阵存储单元);ni为第i条综合曲线中基本单元数,每增加一个条综合曲线则增加一行If C=*******→Z[99]: IfEnd↙语句。
还应注特别意,原有程序中的矩阵变量定维语句DimZ应取消,只要原有程序中的矩阵变量定维不大于100,原有程序的运行不受影响。
子程序Q . 5 (建立数据库)
Deg : Fix 5 ↙
0→I : “N ”? W : W →Z[99]: “Z[MIN]”? V : V→Z[98]↙
Lbl 1 : “NO.I= ”: I ◣
Lbl C : V + 8 I→G ↙
“→DK ”?A : A→Z[G]↙
“→X ”?B : B→Z[G + 1]↙
“→Y ”?C : C→Z[G +2]↙
“→AT ”?D : D→Z[G +3]↙
“→(-1Y+1) ”?K : K→Z[G +4]↙
“→L ”?E : E→Z[G +5]↙
“→R1 ”?F : F→Z[G +6]↙
“→R2”?O : O→Z[G +7]↙
Lbl 2 : “JX→1: NO→0 : OK→2”? M : If M = 2 : Then Goto 3 : IfEnd : If M = 1: Then Goto C : IfEnd ↙
I + 1→I : Goto 1 ↙
Lbl 3 : “END ”
子程序Q . 6
Lbl 1 : “S ”? W : If W = 0 : Then Goto 2 : IfEnd ↙
I-W→W : Cls : “⊿S= ”: Locate 5 , 1 , W : “BP= ”: J ►DMS◣
Goto 1 ↙
Lbl 2 : Cls : “OK ”
子程序Q.1
If X = 0 And O = 3 : Then Goto 2 : IfEnd ↙
Lbl 1 : Z[98]→I : Z[99]→J : “→DKP ”? S ↙
If S = -1: Then Prog “JH . ZJ ”: Goto 1 : IfEnd ↙(加桥台转轴时)
If S = -2: Then Prog “ZH . 2 ”: Goto 1 : IfEnd ↙(加涵通转轴时)
If S = 0: Then Goto 2 : IfEnd : If S﹤Z[I ]: Then “DKP Goto 1 : IfEnd : If S > Z[I + 8 J ]: Then “DKP>MAX ”◣ Goto 1 : IfEnd ↙ If O≠4 And B ≠0 : Then “→B ”? V : V : Prog “J ”: T→U : “→(-+)D ÷2 ” ? N : Else 0 →N : IfEnd ↙ Prog “Q.2 ”: Goto 1 ↙ Lbl 2 : “END ” 子程序Q . 2 If O≠3 : Then “→”: IfEnd ↙ 0→I : Z[98]+ 8 →M ↙ If S ≥Z[M-8 ]And S ≤Z[M ]:Then Goto 1 : IfEnd ↙ Lbl 2 : I +1 →I : M + 8 →M ↙ If S ≤Z[M ]:Then Goto 1 : Else Goto 2 : IfEnd ↙ Lbl 1 : If O = 3 : Then I →B :IfEnd : M→Z[27]: If O≠4 : Then Prog “Q. 3”: Else “L(I) , I = ”: I ◣ Cls : “MIN = ”: Locate 6 , 1 , Z[Z[98]+8 I ]: “MAX = ”: Locate 6 ,2 , Z[Z[98]+8 I +8]:I→B : IfEnd ↙ 子程序Q . 3 If O = 3 And U = 0 : Then B→I : IfEnd ↙ Z[98]+8 I →G ↙ Z[G]→Z ↙ Z[G +1]→Z[1]: Z[G +2]→Z[2]: Z[G +3]→Z[3]↙ Z[3]:Prog “J ”: T→Z[3]↙ Z[G +4]→Z[4]: Z[G +5]→M : 1÷Z[G +6]→Z[5]: 1÷Z[G +7]→Z [6]↙ Z[6]-Z[5]→Z[6]: S-Z→D ↙ If O = 3 : Then 0→N : IfEnd : Prog “Q . 4 ”↙