首页 » 测量源码 » PC1500 |
测边网平差计算 |
时间:2017-04-06 17:34:08,点击:0 |
由本人在网络上收集整理,如有侵权请告知,我会第一时间删除! 2 F=1+G+5E-7:Y$=STR$ (INT F-1):T$=STR$ (F-INT F) 3 IF LEN Y$<3LET Y$=" "+Y$:GOTO 3 4 IF LEN T$<8LET T$=T$+"0":GOTO 4 5 LPRINT TAB 6;Y$;" ";MID$ (T$,3,2);" ";MID$ (T$,5,2);".";MID$ (T$,7,2):RETURN 6 C=VAL S$(I):D=VAL T$(I) 7 X=X(D)-X(C):Y=Y(D)-Y(C):E=ATN (Y/X)+90*(2-SGN Y-SGN X*SGN Y):H=SQR (X*X+Y*Y):RETURN 8 FOR G=0TO U:IF S(Q,G)=0THEN 14 9 FOR H=GTO U:IF S(Q,H)=0THEN 13 10 E=INT (H/2):IF E<H/2LET E=H(E+1)+G-H:GOTO 12 11 E=(H(E)+H(E+1)-1)/2+G-H 12 R=INT (E/10):E=E-10*R:N(R,E)=N(R,E)+S(Q,G)*S(Q,H)*F 13 NEXT H 14 S(Q,G)=0:NEXT G:RETURN 15 G=SIN E/H*P:H=COS E/H*P 16 IF C>KLET Q=2*(C-K)-2:S(Q)=G:S(Q+1)=-H:IF VLET S(1,Q)=S(1,Q)+G:S(1,Q+1)=S(1,Q+1)-H 17 IF D>KLET R=2*(D-K)-2:S(R)=-G:S(R+1)=H:IF VLET S(1,R)=S(1,R)-G:S(1,R+1)=S(1,R+1)+H 18 Q=0:RETURN 19 F=(3.6*L(0)/M)^2:RETURN 20 FOR I=ATO U-1:L=INT (I/2):R=S(I)*(G>0)+(G=0) 21 IF L<I/2LET E=H(L+1):IF ILET B=I-(E-H(L)+1)/2+1 22 IF L=I/2LET E=(H(L)+H(L+1)-1)/2:IF ILET B=I-E+H(L)+1 23 F=INT (E/10):IF A=ITHEN 26 24 R=R*(G>0):IF I<=BTHEN 26 25 FOR J=A*(A>B)+B*(B>=A)TO I-1:Q=E-I+J:C=INT (Q/10):R=R-N(C,Q-10*C)*S(H,J):NEXT J 26 R=R/N(F,E-10*F):S(H,I)=R:IF H=0LET X=X+R*R:GOTO 28 27 Y=Y+R*R:Z=Z+R*S(I) 28 NEXT I:RETURN 29 L=7199+2*I:A=PEEK L/10:B=PEEK (L+1)/10:RETURN 30 "A"CLEAR :COLOR 2:INPUT "Known Points=";K,"Unknown Points=";U,"Total Sides=";S:X=K+U:WAIT 0 35 S$="Directions":INPUT "Compute X,Y?(Y/N)";Y$:IF Y$<>"Y"AND Y$<>"N"THEN 35 40 Z$="Observed ":INPUT "Ps=1?(Y/N)";X$:IF X$="Y"LPRINT "Ps=1":GOTO 50 41 IF X$<>"N"THEN 40 45 IF X$="N"INPUT "Equal a&b?(Y/N)";W$:IF W$<>"Y"AND W$<>"N"THEN 45 50 DIM L(S),X(X),Y(X),S$(S)*2,T$(S)*2:IF W$="Y"INPUT "Ms:a(mm)=";X(0),"b(ppm)=";Y(0) 55 DIM H(U+1):FOR I=1TO X:IF I<=KOR Y$="N"PRINT "X";I;"=";:INPUT X(I):CLS :PRINT "Y";I;"=";:INPUT Y(I) 60 CLS :NEXT I:FOR I=1TO S:PRINT "S";I;"=";:INPUT L(I):CLS :INPUT "From P";S$(I),"To P";T$(I) 65 IF W$="N"INPUT "a(mm)=";A,"b(ppm)=";B:POKE 7199+2*I,10*A,10*B 70 NEXT I:U$="Station":T$="Triangulation ":PRINT T$;U$;"s=";:INPUT T:CLS :IF T=0THEN 95 75 PRINT "Total ";S$;"=";:INPUT N:CLS :INPUT "M=";M:DIM D(N),N$(T)*2,D$(T)*2,P$(N)*2 80 FOR I=1TO T:PRINT U$;I;":P";:INPUT N$(I):CLS :PRINT S$;"=";:INPUT D:CLS :D$(I)=STR$ D 85 FOR J=1TO D:Y=Z+J:PRINT Y;":Aim P";:INPUT P$(Y):CLS :IF J>1PRINT Z$;"value=";:INPUT D(Y):CLS 90 NEXT J:Z=Z+D:NEXT I:Z=0 95 V$="Azimuths=":PRINT Z$;V$;:INPUT O:CLS :IF O=0END 100 DIM A(O):FOR H=1TO O:PRINT H;":From P";:INPUT @$(6+H):CLS :INPUT "To P";@$(12+H) 105 PRINT "a";H;"=";:INPUT A(H):CLS :INPUT "Ma=";@$(H):NEXT H:END 120 "B"IF W$="Y"PRINT "a(mm)=";X(0);" ";:INPUT X(0) 125 CLS :IF W$="Y"PRINT "b(ppm)=";Y(0);" ";:INPUT Y(0) 130 CLS :FOR I=1TO X:IF I>KAND Y$="Y"THEN 145 135 PRINT "X";STR$ I;"=";STR$ X(I);" ";:INPUT X(I) 140 CLS :PRINT "Y";I;"=";Y(I);" ";:INPUT Y(I) 145 CLS :NEXT I:FOR I=1TO S:PRINT "S";I;"=";L(I);" ";:INPUT L(I) 150 CLS :PRINT "From P";S$(I);" ";:INPUT S$(I) 155 CLS :PRINT "To P";T$(I);" ";:INPUT T$(I) 160 CLS :IF W$="N"GOSUB 29:PRINT "a(mm)=";A;" ";:INPUT A:POKE L,10*A 165 CLS :IF W$="N"PRINT "b(ppm)=";B;" ";:INPUT B:POKE L+1,10*B 170 CLS :NEXT I:PAUSE T$;U$;"s=";T:IF T=0THEN 205 175 PRINT "M=";M;" ";:INPUT M 180 CLS :FOR I=1TO T:PRINT U$;I;":P";N$(I);" ";:INPUT N$(I) 185 CLS :PRINT S$;"=";D$(I);" ";:INPUT D$(I) 190 CLS :D=VAL D$(I):FOR J=1TO D:Y=Z+J:PRINT Y;":Aim P";P$(Y);" ";:INPUT P$(Y) 195 CLS :IF J>1PRINT "D";Y;"=";D(Y);" ";:INPUT D(Y) 200 CLS :NEXT J:Z=Z+D:NEXT I:Z=0 205 PAUSE Z$;V$;O:IF O=0END 210 FOR I=1TO O:PRINT "a";I;"=";A(I);" ";:INPUT A(I) 215 CLS :PRINT "From P";@$(6+I);" ";:INPUT @$(6+I) 220 CLS :PRINT "To P";@$(12+I);" ";:INPUT @$(12+I) 225 CLS :PRINT "Ma=";@$(I);" ";:INPUT @$(I) 230 CLS :NEXT I:END 250 "C"U$="########.###":IF W$="Y"LPRINT "Ms=";X(0);"mm+";Y(0);"ppm":L(0)=X(0)+Y(0) 260 GOSUB 1:LPRINT "No. ";Z$;" a":LPRINT TAB 9;"S":GOSUB 1:FOR I=1TO S:USING U$:LPRINT "S";STR$ I;TAB 2;L(I); 265 IF W$="N"USING :GOSUB 29:LPRINT TAB 14;A;:IF L(0)<A+BLET L(0)=A+B 270 LPRINT :NEXT I:GOSUB 1 271 IF TGOSUB 1:LPRINT "Point ";Z$:LPRINT "No.Aim ";S$:GOSUB 1:FOR H=1TO T:LPRINT "P";N$(H):V=VAL D$(H) 272 IF TFOR J=1TO V:Y=Z+J:LPRINT STR$ Y;TAB 3;"P";P$(Y);:G=D(Y):GOSUB 2:D(Y)=DEG G:NEXT J:GOSUB 1:Z=Z+V:NEXT H 273 Z=0:IF OGOSUB 1:LPRINT :LPRINT Z$;" a":GOSUB 1:FOR H=1TO O:LPRINT STR$ H;":P";@$(6+H);"-P";@$(12+H); 274 IF OLPRINT TAB 11;"Ma=";@$(H):LPRINT " a=";:G=A(H):GOSUB 2:A(H)=DEG G:GOSUB 1:NEXT H 275 IF Y$="N"THEN 375 276 V=(VAL T$(2)=K+2):Q=V:FOR I=1TO U+V-(K=1):R=2*I-V:IF R>QTHEN 305 277 IF O=0THEN 295 280 FOR H=1TO O:IF @$(6+H)=S$(R)AND @$(12+H)=T$(R)LET W=A(H):Q=0:GOTO 295+5*(I>1) 285 IF I>1AND @$(6+H)=S$(R-1)AND @$(12+H)=STR$ CTHEN 300 290 NEXT H:IF I>1THEN 345 295 X(K+1)=X(1)+L(1)*COS W:Y(K+1)=Y(1)+L(1)*SIN W:NEXT I 300 X=X-X(VAL @$(6+H)):Y=Y-Y(VAL @$(6+H)):W=ATN (Y/X)+90*(2-SGN Y-SGN Y*SGN X)-A(H):GOTO 335 305 A=VAL S$(R-1):B=VAL S$(R):C=VAL T$(R):IF A=BLET B=C:C=A:A=VAL T$(R-1) 310 F=X(A):L=Y(A):P=X(B):Z=Y(B):D=SQR ((F-P)^2+(L-Z)^2):E=L(R-1)/D:X=L(R)/D 315 G=(E*E-X*X)/2+.5:J=1-G:Y=SQR (X*X-J*J):X=F*J+P*G+Y*(L-Z):Y=L*J+G*Z+Y*(P-F) 320 IF C>2LET X(C)=X:Y(C)=Y:GOTO 345-65*(Q=K) 325 X=X-X(1):Y=Y-Y(1):E=X(2)-X(1):F=Y(2)-Y(1) 330 W=ATN (Y/X)+90*(2-SGN X-SGN X*SGN Y)-ATN (F/(E-1E-9))-180*(E<=0)-360*(F<0AND E>0) 335 FOR J=1TO I-(C=2):F=K+J:X=X(F)-X(1):Y=Y(F)-Y(1):X(F)=X*COS W+Y*SIN W+X(1) 340 Y(F)=Y*COS W-X*SIN W+Y(1):NEXT J:Q=0 345 NEXT I:Z=0 375 FOR I=1TO S:C=VAL S$(I):D=VAL T$(I):IF C>KAND H(D-K)<D-CLET H(D-K)=D-C 380 NEXT I:IF T=0THEN 430 385 FOR I=1TO T:V=VAL D$(I):FOR J=1TO V:C=VAL P$(Z+J):Q=C-K:IF Q<1THEN 425 390 IF I<=KTHEN 405 395 IF C<IAND H(I-K)<I-CLET H(I-K)=I-C 400 IF C>IAND H(Q)<C-ILET H(Q)=C-I 405 FOR H=JTO V:D=VAL P$(Z+H):IF D<=KTHEN 420 410 IF D<CAND H(Q)<C-DLET H(Q)=C-D 415 IF D>CAND H(D-K)<D-CLET H(D-K)=D-C 420 NEXT H 425 NEXT J:Z=Z+V:NEXT I 430 W=0:H(0)=-1:H(U+1)=U:FOR I=1TO U+1:H(I)=H(I-1)+4*H(I)+3:NEXT I:V=0:IF X$="Y"LET F=1 435 P=180/PI :DIM S(1,S),N(INT ((H(U)+2*U+1)/10),9):U=2*U:FOR I=1TO S:GOSUB 6 440 S(U)=H-L(I):G=-COS E:H=SIN E:GOSUB 16:IF X$="Y"THEN 460 445 IF W$="N"GOSUB 29:GOTO 455 450 A=X(0):B=Y(0) 455 F=(L(0)/(A+L(I)*B/1E3+.003))^2 460 GOSUB 8:NEXT I:IF T=0THEN 485 465 FOR I=1TO T:C=VAL N$(I):L=1:V=VAL D$(I):GOSUB 19:Z=0 470 FOR J=1TO V:D=VAL P$(W+J):GOSUB 7:R=E-D(W+J):IF R<0LET R=R+360 475 IF LLET Z=Z+R/V:NEXT J:L=0:GOTO 470 480 S(U)=R-Z:GOSUB 15:GOSUB 8:NEXT J:F=-F/V:Q=1:W=W+V:GOSUB 8:NEXT I:V=0:W=0 485 IF OFOR I=1TO O:C=VAL @$(6+I):D=VAL @$(12+I):GOSUB 7:M=VAL @$(I)+.001:GOSUB 15:S(U)=E-A(I) 490 IF OGOSUB 19:GOSUB 8:NEXT I 500 FOR I=1TO U/2:S(2*I-2)=(H(I)+H(I-1)-1)/2:S(2*I-1)=H(I):NEXT I:B=H(I)-U-2:S(U)=B 505 A=INT (B/10):V=N(A,B-10*A):FOR H=0TO U-1:A=S(H)-S(H-SGN S(H))+(H=0) 510 FOR I=HTO U:Y=S(I)-I:X=S(I-SGN I)-Y-(I=0):IF H<=XTHEN 545 515 E=Y+H:F=INT (E/10):M=E-10*F:W=N(F,M):IF A=1THEN 535 520 FOR J=H-A+1TO H-1:IF J<=XTHEN 530 525 B=S(H)-H+J:C=INT (B/10):Q=Y+J:L=INT (Q/10):W=W-N(C,B-10*C)*N(L,Q-10*L) 530 NEXT J 535 IF I=HLET R=SQR W 540 W=W/R:N(F,M)=W:IF I=ULET V=V-W*W 545 NEXT I:NEXT H:Z=K+U/2:X$="Adjusted " 550 FOR I=U-1TO 0STEP -1:A=S(U-1)+I+1:B=INT (A/10):X=-N(B,A-10*B):IF I=U-1THEN 565 555 FOR J=I+1TO U-1:F=S(J)-J+I:IF F>S(J-1)LET E=INT (F/10):X=X-N(E,F-10*E)*S(1,J) 560 NEXT J 565 Q=INT (S(I)/10):X=X/N(Q,S(I)-10*Q):S(1,I)=X:IF INT (I/2)<I/2LET Y(Z)=Y(Z)+X:NEXT I 570 X(Z)=X(Z)+X:Z=Z-1:NEXT I:M=SQR (V/(S-U+N-T+O))*100:P=5E-4 575 USING U$:GOSUB 1:LPRINT :LPRINT X$;"X / Y":GOSUB 1:FOR I=1TO K+U/2:X=X(I):Y=Y(I):J=(I>K):IF J=0COLOR 3 580 LPRINT "P";STR$ I;TAB 4;X+P*SGN X*(X<1E6)*J:LPRINT TAB 4;Y+P*SGN Y*J:GOSUB 1:NEXT I 600 GOSUB 1:LPRINT " b ";X$:LPRINT TAB 9;"S":GOSUB 1:FOR I=1TO S:GOSUB 6:IF W$="N"USING :GOSUB 29:LPRINT B; 610 LPRINT TAB 2;H+P:NEXT I:GOSUB 1:GOSUB 1:LPRINT TAB 10;X$;TAB 13;"a":GOSUB 1:FOR I=1TO S:GOSUB 6:IF O=0THEN 630 620 FOR J=1TO O:IF C=VAL @$(6+J)AND D=VAL @$(12+J)COLOR 1:GOTO 630 625 NEXT J 630 G=DMS E:GOSUB 2:COLOR 0:NEXT I:GOSUB 1:IF T=0THEN 700 635 GOSUB 1:LPRINT TAB 10;X$;TAB 8;S$:GOSUB 1:W=0:FOR I=1TO T:LPRINT :C=VAL N$(I):V=VAL D$(I) 640 FOR J=1TO V:D=VAL P$(W+J):GOSUB 7:IF J=1LET O=E 645 E=E-O:IF E<0LET E=E+360 650 G=DMS E:GOSUB 2:NEXT J:GOSUB 1:W=W+V:NEXT I 700 GOSUB 1:LPRINT :LPRINT " Ms/S":GOSUB 1:H=0:COLOR 2 710 FOR O=1TO S:G=VAL S$(O):P=VAL T$(O):X=X(P)-X(G):Y=Y(P)-Y(G):Z=SQR (X*X+Y*Y) 715 FOR I=1TO U:S(I)=0:NEXT I:IF G>KLET A=2*(G-K)-2:S(A)=X/Z:S(A+1)=Y/Z 720 C=2*(P-K)-2:S(C)=-X/Z:S(C+1)=-Y/Z:IF G<=KLET A=C 725 X=0:GOSUB 20:LPRINT "1/";STR$ (INT (L(O)/M/SQR X+.5)*100):NEXT O:GOSUB 1:USING "####.#":COLOR 2:G=0 730 LPRINT "Mo=";M*10+.05;"mm":LPRINT :B=0:FOR O=1TO U/2:X=0:Y=0:Z=0:FOR H=0TO 1:A=2*O+H-2:GOSUB 20 735 NEXT H:A=ATN (2*Z/(X-Y))/2:A=A+45*(2-SGN A-SGN Z):LPRINT "P";STR$ (K+O);":";:GRAPH :ROTATE 1 740 LINE -(46,13),9:LPRINT "O":TEXT :LPRINT TAB 4;"le=";A+.05;"(DEG)" 745 LPRINT " E=";TAB 2;M*SQR (X+Z*TAN A)+.05;",F=";TAB 9;M*SQR (Y-Z*TAN A)+.05;"cm":LPRINT :NEXT O:USING :END 10001 GRAPH :COLOR 0:LINE -(216,0):TEXT :LPRINT :RETURN 5;",F=";TAB 9;M*SQR (Y-Z*TAN A)+.05;"cm":LPRINT :NEXT O:USING :END 10001 GRAPH :COLOR 0:LINE -(216,0):TEXT :LPRI 您可以依据它修改成casio系列计算器的程序,可以依据它使用编程语言写出自己的程序! |
【打印】【关闭】 |
本站的部分源程序是由站长由网络收集整理的,如有侵权,请告之,我会第一时间删除相关内容。 因时间原因,源码不可能每一个都进行了测试,所以不能保证源码全是正确的,提供源码只是提供一份思路,一个参考,方便写出专属于您自己的程序 |
Copyright 2003-2025 测量天地
(SurveySky.Com)
All Rights Reserved.
备案许可证:新ICP备12001392号-1 | 关于我们 | 联系我们 |网站留言| |