- UID
- 124367
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2004-4-13
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
190 DATA 50090,1749.073,5.559,6105010,5426574,6105457,5426608,700,0,6106052,5427036,220,52.314,6106278,5427008,260,63.379,6106457.586,5427105.377
192 DATA 110130,4218.944,8.177,7336,7159,7564,7330,240,50.393,73,7848,7219
194 DATA 00030,0,0,3706.836,5553.354,4011.812,5627.574,198.743,80,37.342,4135.363,5775.604,450,37.342,86.252,4175,6044
196 DATA 230251,7887.164,6.724,6110807,5427555,6110997.425,5427476.544,1270.254,0,6111452,5427366,8296.661,8300
198 DATA 31,13300,996.75,13870,999.03,4300,14300,1014.68,5000,14640,1011.96,14175.388,14176.711
200 *MS
210 DEGREE :KEY 5,"QUIT"+CHR$ 13:KEY 10,"QUIT0"+CHR$ 13
220 *T2
230 CLEAR : CLS: KEY 1,"RUN"+CHR$ 13
240 PRINT : PRINT " ***** *****"
250 GCURSOR (97,8):GPRINT "022222E2A73772DA1A9FD77252030200":GCURSOR (97,16):GPRINT "02022222131B0E7F3F060A1A32220200"
260 GCURSOR (130,8):GPRINT "0000FCFD2626FCFC2627FDFC04000000":GCURSOR (130,16):GPRINT "0404050505057F7F0505050506040000"
270 LOCATE 0,3:PRINT " LsRLs Ls=\= LsLoLs --^-- --|--"
280 GOSUB *T3
290 *N1:I=I+1
300 A$=INKEY$
310 B=ASC A$
320 IF B=30THEN *DATA
330 IF B=241THEN *P
340 IF B=242THEN *P1
350 IF B=243THEN *P2
360 IF B=244THEN *P4
370 IF B=245THEN *H
380 IF B=1THEN *T16
390 IF B=7THEN *T1
400 IF B=82THEN GOSUB *D15
410 IF B=81THEN *T17
420 GOTO 300
430 *P:POP=1
440 GOSUB *T4:GOSUB *T6:GOSUB *D14
450 READ N
460 F=N-INT (N/10)*10:FF=INT (N/10000):FFF=INT ((N-FF*10000)/10):N=FFF-FF
470 GOSUB *M1
480 READ K(0),RR,X(0),Y(0)
490 FOR I=1TO N-1:READ X(I),Y(I),R(I),LS(I):NEXT I:READ X(N),Y(N)
500 IF F<1THEN *N2
510 FOR I=1TO F:READ KP(I),KE(I):NEXT I
520 *N2:K(0)=K(0)-RR
530 ZZ=1:GOSUB *M2:GOSUB *T7
540 ZZ=2:GOSUB *M4:GOSUB *T7
550 ZZ=3:GOSUB *M5:GOSUB *T7
560 ZZ=4:GOSUB *M6:GOSUB *T7
570 K=K(4*N-3)
580 IF F=0THEN 600
590 FOR I=1TO F:K=K+KE(I)-KP(I):NEXT I
600 XG=2:YG=3:GOSUB *M16
610 L1=1:L2=23:L3=89:L4=8:GOSUB *T5
620 ZZ=5:GOSUB *T7
630 *N3:LOCATE 18,3:PRINT " ":LOCATE 18,3:INPUT "K=";K$
640 IF K$="QUIT"THEN GOSUB *T9
650 IF K$="QUIT0"THEN GOSUB *D10
660 IF K$="Q"THEN *T2
670 IF "J"=LEFT$ (K$,1)THEN GOSUB *M19
680 IF K$="QUIT0"OR K$="QUIT"OR "J"=LEFT$ (K$,1)THEN *N3
690 GOSUB *M28
700 IF C=1THEN *N3
710 GOSUB *M14:GOSUB *M15
720 LPRINT "K=";KB
730 LPRINT "X=";INT ((SX+0.0005)*1000)/1000;"Y=";INT ((SY+0.0005)*1000)/1000
740 LPRINT "AP=";DMS A0;"D0=";INT ((D0+0.0005)*1000)/1000
750 GOTO *N3
760 END
770 *T1
780 CLS
790 LOCATE 5,1:PRINT "* * * * * *"
800 GCURSOR (89,8):GPRINT "00C06020101010080808081C00000000F80C0404040408183C0000000000000000C43C040404040404CC70"
810 GCURSOR (89,16):GPRINT "071820204040404040E00000000000F0604182828282C47800006060008080F08E030202020202020101"
820 GCURSOR (4,8):GPRINT "F0101C1417F5A5C58505FD01FF":GCURSOR (4,16):GPRINT "1F101010101010100F04070101"
830 GCURSOR (3,22):GPRINT "121509000E110E001F050100011F01"
840 GCURSOR (160,24):GPRINT "2010F8EE07826038FFFA4848684C0800202024A4A4E47F3F34362CA82634200000000002FFFEF212F2FB1202F21ED6D212F2002010F8EE0702F0F010FFFF10F0F80002020202020202FEFF32D88C00000000"
850 GCURSOR (160,32):GPRINT "00007F7F000000007F7F0202020302000202017F3F25252525257F3F010000003636000C277F3F111B09004027100F1F30670000007F7F00000303017F3F01010300000000000000000F1F30606371200000"
860 BEEP 2,50,100
870 FOR I=0TO 163
880 IF I<62THEN LINE (I+80,0)-(I+80,0)
890 IF I>61AND I<81THEN LINE (142,I-62)-(142,I-62)
900 IF I>80AND I<143THEN LINE (223-I,18)-(223-I,18)
910 IF I>144THEN LINE (80,163-I)-(80,163-I)
920 NEXT I
930 FOR I=100TO 1STEP -1:BEEP 1,I,800/(I+100):NEXT I
940 GOTO *T2
950 *T3
960 A$="7F7F41":B$="417F7F"
970 GCURSOR (0,31):GPRINT A$:GCURSOR (42,31):GPRINT B$
980 GCURSOR (49,31):GPRINT A$:GCURSOR (93,31):GPRINT B$
990 GCURSOR (98,31):GPRINT A$:GCURSOR (139,31):GPRINT B$
1000 GCURSOR (146,31):GPRINT A$:GCURSOR (188,31):GPRINT B$
1010 GCURSOR (194,31):GPRINT A$:GCURSOR (237,31):GPRINT B$
1020 RETURN
1030 *T4
1040 CLS
1050 GCURSOR (0,8):GPRINT "4046DCE8402020E2AABFBFAAA2E0A000":GCURSOR (0,16):GPRINT "00207F3F1008007F7F0A0A2A7F3F0000"
1060 GCURSOR (20,8):GPRINT "C8E8BEDFC88CB018AF262818B0100000":GCURSOR (20,16):GPRINT "040D047F3F027F157F004F407F000000"
1070 GCURSOR (40,8):GPRINT "000000000283EE7CF0C000000000000":GCURSOR (40,16):GPRINT "4020301C0E0301000001071E38702000"
1080 LOCATE 10,1:PRINT "*** DATA "
1090 GCURSOR (114,8):GPRINT "40309CE7420020222222E2E22233220":GCURSOR (114,16):GPRINT "04037F3F0000000020207F3F"
1100 GCURSOR (134,8):GPRINT "4040407F5ED2D25252527E5F42404":GCURSOR (134,16):GPRINT "000000020703021222623E0F02"
1110 GCURSOR (154,16):GPRINT "006363"
1120 LOCATE 27,2:INPUT "***=";AAA
1130 RESTORE AAA
1140 RETURN
1150 *M1
1160 DIM X(N),Y(N),R(N-1),LS(N-1),K(4*N-3),A(N),D(N),AK(N),W(N-1)
1170 DIM T(N),KS(N-1),E(N-1),J(N-1),L(N-1),KP(F),KE(F)
1180 RETURN
1190 *M2
1200 FOR I=1TO N
1210 X0=X(I)-X(I-1):Y0=Y(I)-Y(I-1)
1220 GOSUB *M3
1230 D(I)=D0:A(I)=A0
1240 NEXT I
1250 RETURN
1260 *M3
1270 D0=(X0^2+Y0^2)^0.5
1280 A0=ASN (Y0/D0)
1290 IF X0<0THEN A0=180-A0
1300 IF X0>0AND Y0<0THEN A0=360+A0
1310 RETURN
1320 *M4
1330 FOR I=1TO N-1
1340 AK(I)=ABS (A(I+1)-A(I))
1350 IF A(I+1)>A(I)THEN W(I)=1
1360 IF A(I+1)<A(I)THEN W(I)=-1
1370 IF AK(I)>180THEN W(I)=-W(I)
1380 IF AK(I)>180THEN AK(I)=360-AK(I)
1390 NEXT I
1400 RETURN
1410 *M5
1420 FOR I=1TO N-1
1430 Q=LS(I)/2-LS(I)^3/240/R(I)^2:P=LS(I)^2/24/R(I)
1440 T(I)=(R(I)+P)*TAN (AK(I)/2)+Q
1450 KS(I)=R(I)*AK(I)*PI /180-LS(I)
1460 L(I)=KS(I)+2*LS(I)
1470 E(I)=(R(I)+P)/COS (AK(I)/2)-R(I)
1480 J(I)=2*T(I)-L(I)
1490 NEXT I
1500 RETURN
1510 *M6
1520 FOR I=1TO N-1
1530 K(4*I-3)=K(4*I-4)+D(I)-T(I)-T(I-1)
1540 K(4*I-2)=K(4*I-3)+LS(I)
1550 K(4*I-1)=K(4*I-2)+KS(I)
1560 K(4*I)=K(4*I-1)+LS(I)
1570 NEXT I
1580 K(4*I-3)=K(4*I-4)+D(I)-T(I-1)
1590 RETURN
1600 *M7
1610 KB=VAL K$:KA=KB
1620 IF F=0THEN 1660
1630 FOR I=1TO F
1640 IF KA>KP(I)THEN KA=KA-(KE(I)-KP(I))
1650 NEXT I
1660 RETURN
1670 *M8
1680 C=0
1690 IF KA>K(4*N-3)OR KA<K(0)THEN :C=1:LOCATE 0,3:PRINT " Out of range !":L1=1:L2=23:L3=89:L4=8:GOSUB *T5:GOTO 1750
1700 FOR I=0TO 4*(N-1)
1710 IF KA<K(I+1)AND KA>=K(I)THEN 1730
1720 NEXT I
1730 Z=I-4*INT (I/4):I0=INT ((I+1)/4.0001)+1:L=KA-K(I)
1740 IF Z=3THEN L=K(I+1)-KA
1750 RETURN
1760 *M9
1770 X1=X(I0-1)+T(I0-1)*COS A(I0)
1780 Y1=Y(I0-1)+T(I0-1)*SIN A(I0)
1790 SX=X1+L*COS A(I0):SY=Y1+L*SIN A(I0):AF=A(I0)+90
1800 RETURN
1810 *M10
1820 X1=X(I0)+T(I0)*COS (180+A(I0)):Y1=Y(I0)+T(I0)*SIN (180+A(I0))
1830 X0=L-L^5/40/R(I0)^2/LS(I0)^2
1840 Y0=W(I0)*(L^3/6/R(I0)/LS(I0)-L^7/336/R(I0)^3/LS(I0)^3)
1850 AF=A(I0)+90+L^2/R(I0)/LS(I0)*W(I0)*180/PI /2:A0=A(I0)
1860 GOSUB *M13
1870 RETURN
1880 *M11
1890 X1=X(I0)+T(I0)*COS (180+A(I0)):Y1=Y(I0)+T(I0)*SIN (180+A(I0))
1900 X0=LS(I0)/2-LS(I0)^3/240/R(I0)^2
1910 Y0=LS(I0)^2/24/R(I0)
1920 AA=(L/R(I0)+LS(I0)/R(I0)/2)*180/PI
1930 X0=X0+R(I0)*SIN AA:Y0=(Y0+R(I0)*(1-COS AA))*W(I0)
1940 AF=A(I0)+AA*W(I0)+90:A0=A(I0)
1950 GOSUB *M13
1960 RETURN
1970 *M12
1980 X1=X(I0)+T(I0)*COS A(I0+1):Y1=Y(I0)+T(I0)*SIN A(I0+1)
1990 X0=L-L^5/40/R(I0)^2/LS(I0)^2
2000 Y0=-W(I0)*(L^3/6/R(I0)/LS(I0)-L^7/336/R(I0)^3/LS(I0)^3)
2010 AF=A(I0+1)+90-L^2/2/R(I0)/LS(I0)*W(I0)*180/PI :A0=180+A(I0+1)
2020 GOSUB *M13
2030 RETURN
2040 *M13
2050 SX=X0*COS A0+Y0*SIN (-A0)+X1:SY=X0*SIN A0+Y0*COS A0+Y1
2060 RETURN
2070 *M14
2080 X0=SX-STX:Y0=SY-STY
2090 GOSUB *M3
2100 RETURN
2110 *M15
2120 CLS
2130 K=KB:XG=2:YG=0
2140 LOCATE 0,0:PRINT "** **"
2150 GOSUB *M16
2160 AP=A0:XG=3:YG=1
2170 LOCATE 0,1:PRINT "AP="
2180 GOSUB *M18
2190 D=D0:XG=3:YG=2
2200 LOCATE 0,2:PRINT "D0="
2210 GOSUB *M17
2220 AP=AF:XG=20:YG=0
2230 IF PP=1THEN 2260
2240 LOCATE 18,0:PRINT "A="
2250 GOTO 2270
2260 LOCATE 17,0:PRINT "AG=":XG=20
2270 GOSUB *M18
2280 D=SX:XG=20:YG=1
2290 LOCATE 18,1:PRINT "X="
2300 GOSUB *M17
2310 D=SY:XG=20:YG=2
2320 LOCATE 18,2:PRINT "Y="
2330 GOSUB *M17
2340 IF PP=1THEN GOTO 2400
2350 GOSUB *T8
2360 IF KA=KB THEN 2380
2370 K=KA:YG=3:XG=2:GOSUB *M16:L1=1:L2=23:L3=89:L4=8:GOSUB *T5
2380 IF K>K(4*N-4)OR K<K(1)THEN :LOCATE 2,3:PRINT "Be careful!":L1=1:L2=23:L3=89:L4=8:GOSUB *T5
2390 GOTO 2420
2400 GOSUB *M29
2410 IF PPP=2THEN LOCATE 2,3:PRINT "LD=";LD
2420 RETURN
2430 *M16
2440 IF "J"=G$ THEN 2460
2450 GOTO 2500
2460 IF F=0THEN 2500
2470 FOR I=1TO F
2480 IF K>KP(I)THEN K=K+(KE(I)-KP(I))
2490 NEXT I
2500 K=K+0.0005
2510 A=INT (K/1000):E$=STR$ (K-(A-1)*1000)
2520 IF A<10THEN B=1:GOTO 2540
2530 B=INT LOG (10*A)
2540 LOCATE XG+B,YG:PRINT "000.000"
2550 A$=STR$ A:B$=MID$ (E$,2,8)
2560 A$=A$+"":A$=A$+B$
2570 LOCATE XG,YG:PRINT A$
2580 GCURSOR (6*XG,8*(YG+1)-1):GPRINT "7F08142241"
2590 GCURSOR (6*(XG+B+1),8*(YG+1)-1):GPRINT "08083E0808"
2600 RETURN
2610 *M17
2620 D=D+0.0005
2630 IF D<10THEN B=0:GOTO 2650
2640 B=INT LOG D
2650 D=INT (D*1000)/1000:D$=STR$ D
2660 LOCATE XG+B+1,YG:PRINT "0.000"
2670 LOCATE XG,YG:PRINT D$
2680 RETURN
2690 *M18
2700 IF AP>=360THEN AP=AP-360
2710 AP=DMS AP
2720 A=INT (AP*100)/100:A$=STR$ A
2730 B=INT ((AP-A)*100000)/10:B$=STR$ B
2740 IF A>=10THEN C=(INT LOG A)+1
2750 IF A<10THEN C=1
2760 LOCATE XG+3,YG:PRINT " 00 00.0"
2770 LOCATE XG+3-C,YG:PRINT A$
2780 IF B>=10THEN H=0:GOTO 2830
2790 IF B<10AND B>=1THEN 2810
2800 B$=STR$ (10*B):B$=RIGHT$ (B$,1):H=4:GOTO 2830
2810 B$=RIGHT$ (B$,3):H=2
2820 IF B-INT B=0THEN B$=RIGHT$ (B$,1)
2830 LOCATE XG+H+7,YG:PRINT B$
2840 GCURSOR ((XG+4)*6,YG*8+7):GPRINT "0007050700"
2850 GCURSOR ((XG+7)*6,YG*8+7):GPRINT "000B070000"
2860 GCURSOR ((XG+12)*6,YG*8+7):GPRINT "0B07000B07"
2870 RETURN
2880 *M19
2890 CLS
2900 PRINT " * * * * * * * ";K$;" * * * * * * *"
2910 M=LEN K$:G$="J"
2920 AM=VAL RIGHT$ (K$,M-1)-FF:IF AM>N-1OR AM<1THEN 2990
2930 K=K(4*AM-3):XG=1:YG=1:GOSUB *M16
2940 K=K(4*AM-2):XG=19:YG=1:GOSUB *M16
2950 K=K(4*AM-2)/2+K(4*AM-1)/2:XG=1:YG=2:GOSUB *M16
2960 K=K(4*AM-1):XG=19:YG=2:GOSUB *M16
2970 K=K(4*AM):XG=1:YG=3:GOSUB *M16
2980 G$=" "
2990 RETURN
3000 *M20
3010 PP=1
3020 CLS
3030 PRINT "STN-X= STN-Y= BS-X= BS-Y= AP= D0="
3040 LOCATE 6,0:INPUT STX:LOCATE 26,0:INPUT STY
3050 LOCATE 6,1:INPUT SBX:LOCATE 26,1:INPUT SBY
3060 GOSUB *D15
3070 X0=SBX-STX:Y0=SBY-STY
3080 GOSUB *M3
3090 AP=A0:D=D0
3100 XG=4:YG=2:GOSUB *M18:XG=26:YG=2:GOSUB *M17
3110 INPUT A$
3120 RETURN
3130 *M21
3140 PP=1
3150 CLS
3160 PRINT " * * * * X * Y >->->-> D * A * * * * X= Y= AP= D0="
3170 LOCATE 3,1:INPUT X:LOCATE 25,1:INPUT Y
3180 X0=X-STX:Y0=Y-STY
3190 GOSUB *M3
3200 AP=A0:D=D0
3210 XG=4:YG=2:GOSUB *M18:XG=25:YG=2:GOSUB *M17
3220 LOCATE 35,3:PRINT "QUIT":GCURSOR (200,31):GPRINT "7F7F41":GCURSOR (237,31):GPRINT "417F7F"
3230 LOCATE 0,3:INPUT A$
3240 IF A$="QUIT"THEN 3260
3250 GOTO 3150
3260 RETURN
3270 *M22
3280 PP=1
3290 CLS
3300 PRINT " * * * * D * A >->->-> X * Y * * * * D= A= X= Y="
3310 LOCATE 3,1:INPUT R:LOCATE 24,1:INPUT A
3320 X=STX+R*COS (DEG A):Y=STY+R*SIN (DEG A)
3330 D=X:XG=2:YG=2:GOSUB *M17:D=Y:XG=23:YG=2:GOSUB *M17
3340 LOCATE 35,3:PRINT "QUIT":GCURSOR (200,31):GPRINT "7F7F41":GCURSOR (237,31):GPRINT "417F7F"
3350 LOCATE 0,3:INPUT A$
3360 IF A$="QUIT"THEN 3380
3370 GOTO 3290
3380 RETURN
3390 *M23
3400 PPPP=1:GOSUB *M29
3410 XL=SX:YL=SY:AG=90:AA=AF:PP=1:AG0=AF
3420 LOCATE 17,3:PRINT " ":LOCATE 17,3:INPUT "L=";LD$:LD=VAL LD$:LD=LD/SIN AG
3430 IF LD$="QUIT"THEN 3520
3440 IF LD$="AG"THEN 3490
3450 SX=XL+LD*COS AA:SY=YL+LD*SIN AA:AF=AG
3460 GOSUB *M14
3470 GOSUB *M15
3480 GOTO 3420
3490 LOCATE 17,3:INPUT "AG=";AG:XG=20:YG=0:AP=DEG AG:GOSUB *M18
3500 AA=AG0+DEG AG-90
3510 GOTO 3420
3520 RETURN
3530 *M24
3540 PP=1
3550 CLS
3560 LOCATE 35,3:PRINT "QUIT":GCURSOR (200,31):GPRINT "7F7F41":GCURSOR (237,31):GPRINT "417F7F"
3570 LOCATE 17,3:PRINT "(J";FF;"--J";FFF;")":LOCATE 0,3:INPUT "which one ?";J$:J=VAL J$-FF:IF J$="QUIT"THEN 4090
3580 IF J>N AND F>0 THEN 3670
3590 IF J>=N THEN 3640
3600 IF J>=1THEN 3700
3610 PRINT "JD";FF;"K(0)=";K(0)+RR;"RR=";RR;"X(0)=";X(0);"Y(0)=";Y(0)
3620 LPRINT "JD";FF;"K(0)=";K(0)+RR;"RR=";RR;"X(0)=";X(0);"Y(0)=";Y(0):INPUT P0$
3630 GOTO 3550
3640 PRINT "JD";FFF;"K(N)=";K(4*N-3);"X(N)=";X(N);"Y(N)=";Y(N);
3650 LPRINT "JD";FFF;"X(N)=";X(N);"Y(N)=";Y(N);"K(N)=";K(N*4-3):INPUT P0$
3660 GOTO 3550
3670 FOR I=1TO F:LPRINT "KP";KP(I);"=";"KE";KE(I):NEXT I
3680 FOR I=1TO F:PRINT "KP";KP(I);"=";"KE";KE(I):INPUT P0$:NEXT I
3690 GOTO 3550
3700 PRINT "JD";FF+J;"A1=";DMS A(J);"D1=";D(J);"DD1=";D(J)-T(J-1)-T(J);"a=";DMS (W(J)*AK(J));"A2=";DMS A(J+1);"D2=";D(J+1);"DD2=";D(J+1)-T(J+1)-T(J)
3710 LPRINT "JD";FF+J;"A1=";DMS A(J);"D1=";D(J);"DD1=";D(J)-T(J-1)-T(J);"a=";DMS (W(J)*AK(J));"A2=";DMS A(J+1);"D2=";D(J+1);"DD2=";D(J+1)-T(J+1)-T(J):INPUT P0$
3720 IF POP=2THEN 3800
3730 IF POP=3THEN 3860
3740 PRINT "R=";R(J);"Ls=";LS(J)
3750 LPRINT "R=";R(J);"Ls=";LS(J)
3760 PRINT "T=";T(J);"L=";L(J);"E=";E(J);"J=";J(J);
3770 LPRINT "T=";T(J);"L=";L(J);"E=";E(J);"J=";J(J):INPUT P0$
3780 PRINT "JDK";K(4*J-3)+T(J):LPRINT "JDK";K(4*J-3)+T(J)
3790 GOTO 3950
3800 PRINT "R=";R(J);"LS1=";LS1;"LS2=";LS2
3810 LPRINT "R=";R(J);"LS1=";LS1;"LS2=";LS2
3820 PRINT "T1=";T1;"T2=";T2;"L=";KT;"E=";E(J);"J=";J(1)
3830 LPRINT "T1=";T1;"T2=";T2;"L=";KT;"E=";E(J);"J=";J(1):INPUT P0$
3840 PRINT "JDK";K(4*J-3)+T1;:LPRINT "JDK";K(4*J-3)+T1
3850 GOTO 3950
3860 IF J=2THEN 3960
3870 PRINT "R=";R(J);"LS1=";LS(1);"LS2=";L0/2
3880 LPRINT "R=";R(J);"LS1=";LS(1);"LS2=";L0/2
3890 PRINT "T1=";T(1);"T2=";T(1)-Q1
3900 LPRINT "T1=";T(1);"T2=";T(1)-Q1:INPUT P0$
3910 PRINT "L=";LY1+LS(1)+L0/2;"E=";E1;"J=";J1
3920 LPRINT "L=";LY1+LS(1)+L0/2;"E=";E1;"J=";J1
3930 PRINT "JDK=";T(1)+K(1);
3940 LPRINT "JDK=";T(1)+K(1);:INPUT P0$
3950 GOTO 4040
3960 PRINT "R=";R(J);"LS1=";L0/2;"LS2=";LS(2)
3970 LPRINT "R=";R(J);"LS1=";L0/2;"LS2=";LS(2)
3980 PRINT "T1=";T(2)-Q2;"T2=";T(2)
3990 LPRINT "T1=";T(2)-Q2;"T2=";T(2):INPUT P0$
4000 PRINT "L=";LY2+LS(2)+L0/2;"E=";E2;"J=";J2
4010 LPRINT "L=";LY2+LS(2)+L0/2;"E=";E2;"J=";J2
4020 PRINT "JDK=";K(8)-T(2)+J2;
4030 LPRINT "JDK=";K(8)-T(2)+J2;:INPUT P0$
4040 PRINT "X=";X(J);"Y=";Y(J)
4050 LPRINT "X=";X(J);"Y=";Y(J):INPUT P0$
4060 PRINT K(4*J-3);K(4*J-2);(K(4*J-2)+K(4*J-1))/2;K(4*J-1);K(4*J):PRINT
4070 LPRINT K(4*J-3);K(4*J-2);(K(4*J-2)+K(4*J-1))/2;K(4*J-1);K(4*J):INPUT P0$
4080 GOTO 3560
4090 RETURN
4100 *M25
4110 PP=1:D1=10000
4120 GOSUB *T10
4130 LOCATE 0,2:PRINT "X= Y= K= L= B="
4140 LOCATE 2,2:INPUT XX:LOCATE 15,2:INPUT YY
4150 LOCATE 2,3:INPUT K0:LOCATE 15,3:INPUT BBB:LOCATE 29,3:INPUT BA
4160 GOSUB *T6
4170 BB=BBB/BA
4180 FOR II=1TO BB
4190 K0=K0+BA:K$=STR$ K0
4200 IF II=INT (BBB/5)THEN ZZ=1:GOSUB *T7
4210 IF II=INT (BBB*2/5)THEN ZZ=2:GOSUB *T7
4220 IF II=INT (BBB*3/5)THEN ZZ=3:GOSUB *T7
4230 IF II=INT (BBB*4/5)THEN ZZ=4:GOSUB *T7
4240 IF II=INT (BBB)THEN ZZ=5:GOSUB *T7
4250 IF POP=1THEN GOSUB *M28
4260 IF POP=2THEN GOSUB *M36
4270 IF POP=3THEN GOSUB *M44
4280 X0=XX-SX:Y0=YY-SY:D0=(X0^2+Y0^2)^0.5
4290 IF D0<D1 THEN D1=D0:K1=KB
4300 NEXT II
4310 K$=STR$ K1
4320 IF POP=1THEN GOSUB *M28
4330 IF POP=2THEN GOSUB *M36
4340 IF POP=3THEN GOSUB *M44
4350 X11=SX+0.1*COS AF:Y11=SY+0.1*SIN AF
4360 D0=((X11-XX)^2+(Y11-YY)^2)^0.5
4370 SS$="(R)"
4380 IF D1<D0 THEN SS$="(L)"
4390 SS$=STR$ D1+SS$
4400 LOCATE 1,3:PRINT "K=";K1;"D=";SS$
4410 LOCATE 35,3:PRINT "QUIT":GCURSOR (200,31):GPRINT "7F7F41":GCURSOR (237,31):GPRINT "417F7F"
4420 LOCATE 0,3:INPUT P0$
4430 IF P0$="QUIT"THEN 4450
4440 GOTO 4110
4450 RETURN
4460 *M27
4470 PP=1:PPP=1:PPPP=2
4480 GOSUB *M29
4490 PPP=2
4500 LOCATE 2,3:PRINT " "
4510 LOCATE 2,3:INPUT "LD=";LD
4520 LOCATE 20,3:PRINT " "
4530 LOCATE 17,3:INPUT "K=";K$:IF K$="QUIT"THEN 4620
4540 IF K$="LD"THEN 4500
4550 IF POP=1THEN GOSUB *M28
4560 IF POP=2THEN GOSUB *M36
4570 IF POP=3THEN GOSUB *M44
4580 IF C=1THEN 4610
4590 SX=SX+LD*COS AF:SY=SY+LD*SIN AF:GOSUB *M14:AF=90
4600 GOSUB *M15
4610 GOTO 4520
4620 RETURN
4630 *T5
4640 LINE (L1,L2)-(L1+L3,L2)
4650 LINE (L1+L3,L2)-(L1+L3,L2+L4)
4660 LINE (L1+L3,L2+L4)-(L1,L2+L4)
4670 LINE (L1,L2+L4)-(L1,L2)
4680 RETURN
4690 *T6
4700 CLS
4710 GCURSOR (3,8):GPRINT "4046DCE8402020E2AABFBFAAA2E0A000":GCURSOR (3,16):GPRINT "00207F3F1008007F7F0A0A2A7F3F0000"
4720 GCURSOR (23,8):GPRINT "24E4FEFEA322F2F4989F9E98F4F60400":GCURSOR (23,16):GPRINT "07017F3F01437F3F040404247F3F0000"
4730 GCURSOR (43,8):GPRINT "9088A6A7ADBCF6F4A0AEA7BDBCD68400":GCURSOR (43,16):GPRINT "00000202061E0A02227F3E0202000000"
4740 LOCATE 10,1:PRINT "......"
4750 LOCATE 16,0:PRINT "0% RUNNING 100%
4760 L1=100:L2=8:L3=135:L4=9:GOSUB *T5
4770 RETURN
4780 *T7
4790 IF ZZ=1THEN GCURSOR (105,15):GPRINT "28107C102800000028107C1028000000":LINE (100,8)-(235,8)
4800 IF ZZ=2THEN GCURSOR (121,15):GPRINT "28107C102800000028107C102800000028107C102800000028107C1028000000":LINE (100,8)-(235,8)
4810 IF ZZ=3THEN GCURSOR (153,15):GPRINT "28107C102800000028107C102800000028107C102800000028107C1028000000":LINE (100,8)-(235,8)
4820 IF ZZ=4THEN GCURSOR (185,15):GPRINT "28107C102800000028107C102800000028107C102800000028107C1028000000":LINE (100,8)-(235,8)
4830 IF ZZ=5THEN GCURSOR (201,15):GPRINT "28107C102800000028107C102800000028107C102800000028107C1028000000":LINE (100,8)-(235,8)
4840 RETURN
4850 *M28
4860 GOSUB *M7
4870 GOSUB *M8
4880 IF PP=1THEN 4890
4890 IF C=1THEN 4940
4900 IF Z=0THEN GOSUB *M9
4910 IF Z=1THEN GOSUB *M10
4920 IF Z=2THEN GOSUB *M11
4930 IF Z=3THEN GOSUB *M12
4940 RETURN
4950 *T8
4960 LOCATE 36,1:I0=I0+FF:I0$=STR$ I0:PRINT I0$
4970 IF Z=0THEN GCURSOR (204,8):GPRINT "040404F4E4A4BFBFA4A4E4F424060400":GCURSOR (204,16):GPRINT "4040407F7F4A4A4A4A4A7F7F40604000"
4980 IF Z=1THEN GCURSOR (204,8):GPRINT "6058CEE77220025EF2CF7B63595D0400":GCURSOR (204,16):GPRINT "26632332120841211F0F55653D5F4500":GCURSOR (220,7):GPRINT "0084FE8000"
4990 IF Z=2THEN GCURSOR (204,8):GPRINT "FFFE0202C2BEBAAABABECA8202FEFF00":GCURSOR (204,16):GPRINT "7F7F2020332B2C272C2B3B28203F7F00"
5000 IF Z=3THEN GCURSOR (204,8):GPRINT "6058CEE77220025EF2CF7B63595D0400":GCURSOR (204,16):GPRINT "26632332120841211F0F55653D5F4500":GCURSOR (220,7):GPRINT "84C2A2928C"
5010 IF QOO>0THEN 5060
5020 LOCATE 35,3:PRINT "MENU"
5030 GCURSOR (205,31):GPRINT "7F7F41":GCURSOR (235,31):GPRINT "417F7F"
5040 L1=202:L2=0:L3=37:L4=31:GOSUB *T5
5050 GCURSOR (203,23):GPRINT "101010101010284400004080887A00003030000028107C10280000442810101010101010"
5060 RETURN
5070 *T9
5080 PP=0:PPP=0
5090 CLS
5100 PRINT :PRINT " ***** *****"
5110 GCURSOR (85,8):GPRINT "022222E2A73772DA1A9FD77252030200":GCURSOR (85,16):GPRINT "02022222131B0E7F3F060A1A32220200"
5120 GCURSOR (115,8):GPRINT "0000FCFD2626FCFC2627FDFC04000000":GCURSOR (115,16):GPRINT "0404050505057F7F0505050506040000"
5130 GCURSOR (143,9):GPRINT "0000000404FC0404000000":GCURSOR (143,15):GPRINT "00000040407F4040000000"
5140 GCURSOR (209,15):GPRINT "1436773614":LOCATE 36,1:PRINT "2ndF":L1=215:L2=7:L3=24:L4=8:GOSUB *T5
5150 LOCATE 0,3:PRINT " *B-Z-1 XY-DA DA-XY STN-BS QUIT"
5160 GOSUB *T3
5170 I=I+1
5180 A$=INKEY$
5190 B=ASC A$
5200 IF B=1THEN 5280
5210 IF B=245THEN 5490
5220 IF B=241THEN GOSUB *M23
5230 IF B=242THEN GOSUB *M21
5240 IF B=243THEN GOSUB *M22
5250 IF B=244THEN GOSUB *M20
5260 IF PP<>0THEN 5080
5270 GOTO 5170
5280 PP=0:PPP=0
5290 CLS
5300 PRINT :PRINT " ***** *****"
5310 GCURSOR (85,8):GPRINT "022222E2A73772DA1A9FD77252030200":GCURSOR (85,16):GPRINT "02022222131B0E7F3F060A1A32220200"
5320 GCURSOR (115,8):GPRINT "0000FCFD2626FCFC2627FDFC04000000":GCURSOR (115,16):GPRINT "0404050505057F7F0505050506040000"
5330 GCURSOR (209,15):GPRINT "1436773614":LOCATE 36,1:PRINT "2ndF":L1=215:L2=7:L3=24:L4=8:GOSUB *T5
5340 GCURSOR (143,9):GPRINT "0404FC0404000404FC0404":GCURSOR (143,15):GPRINT "40407F40400040407F4040"
5350 LOCATE 0,3:PRINT " *B-Z-2 X- Y XY--DK T-E-J QUIT"
5360 GCURSOR (59,29):GPRINT "80C0A090F8":GCURSOR (77,29):GPRINT "80C0A090F8"
5370 GOSUB *T3
5380 I=I+1
5390 C$=INKEY$
5400 D=ASC C$
5410 IF D=1THEN 5130
5420 IF D=245THEN 5490
5430 IF D=241THEN GOSUB *M27
5440 IF D=242AND POP<3 THEN GOSUB *M50
5450 IF D=243THEN GOSUB *M25
5460 IF D=244THEN GOSUB *M24
5470 IF PP<>0THEN 5280
5480 GOTO 5380
5490 CLS
5500 RETURN
5510 *M29
5520 IF PPP=1THEN CLS
5530 IF PP=1THEN 5570
5540 CLS :LOCATE 0,0:PRINT "** **"
5550 K=KB:XG=2:YG=0
5560 GOSUB *M16
5570 GCURSOR (204,8):GPRINT "2023EEF4200808C8FF3E0808F8F8080000006058CEE772204848FFFE4849CB6A40"
5580 GCURSOR (204,16):GPRINT "20301F0F183826232124283C2F2320000000262723321A002010190F0C1F332130"
5590 IF PPPP=1THEN LOCATE 36,2:PRINT "AG":GCURSOR (204,23):GPRINT "7F7F41":GCURSOR (235,23):GPRINT "417F7F"
5600 IF PPPP=2THEN LOCATE 36,2:PRINT "LD":GCURSOR (204,23):GPRINT "7F7F41":GCURSOR (235,23):GPRINT "417F7F"
5610 LOCATE 35,3:PRINT "QUIT":GCURSOR (204,31):GPRINT "7F7F41":GCURSOR (235,31):GPRINT "417F7F"
5620 L1=202:L2=0:L3=37:L4=31:GOSUB *T5
5630 RETURN
5640 *T10
5650 CLS
5660 GCURSOR (0,8):GPRINT "4046DCE8402020E2AABFBFAAA2E0A000":GCURSOR (0,16):GPRINT "00207F3F1008007F7F0A0A2A7F3F0000"
5670 GCURSOR (20,8):GPRINT "C8E8BEDFC88CB018AF262818B0100000":GCURSOR (20,16):GPRINT "040D047F3F027F157F004F407F000000"
5680 GCURSOR (40,8):GPRINT "000000000283EE7CF0C0000000000000":GCURSOR (40,16):GPRINT "4020301C0E0301000001071E38702000"
5690 GCURSOR (60,16):GPRINT "006363"
5700 RETURN
5710 *P1:POP=2
5720 GOSUB *T4
5730 READ N
5740 F=N-INT (N/10)*10:FF=INT (N/10000):FFF=INT ((N-FF*10000)/10):N=FFF-FF
5750 GOSUB *M1:DIM M(9)
5760 READ K(0),RR,X(0),Y(0),X(1),Y(1),R(1),LS1,LS2,X(2),Y(2)
5770 IF F=0THEN 5790
5780 FOR I=1TO F:READ KP(I),KE(I):NEXT I
5790 K(0)=K(0)-RR:GOSUB *D14
5800 GOSUB *T6:ZZ=1:GOSUB *T7
5810 ZZ=2:GOSUB *M2:GOSUB *T7
5820 ZZ=3:GOSUB *M4:GOSUB *T7
5830 ZZ=4:GOSUB *M31:GOSUB *T7
5840 K(1)=K(0)+D(1)-T1:K(2)=K(1)+LS1:K(3)=K(2)+KS:K(4)=K(3)+LS2:K(5)=K(4)+D(2)-T2
5850 ZZ=5:GOSUB *T7
5860 K=K(5)
5870 IF F=0THEN 5890
5880 FOR I=1TO F:K=K+KE(I)-KP(I):NEXT I
5890 XG=2:YG=3:GOSUB *M16
5900 L1=1:L2=23:L3=89:L4=8:GOSUB *T5
5910 *N4:LOCATE 18,3:PRINT " ":LOCATE 18,3:INPUT "K=";K$
5920 IF K$="QUIT"THEN GOSUB *T9
5930 IF K$="QUIT0"THEN GOSUB *D10
5940 IF K$="Q"THEN *T2
5950 IF "J"=LEFT$ (K$,1)THEN GOSUB *M19
5960 IF K$="QUIT0"OR K$="QUIT"OR "J"=LEFT$ (K$,1)THEN *N4
5970 GOSUB *M36
5980 IF C=1THEN *N4
5990 GOSUB *M14:GOSUB *M15
6000 LPRINT "K=";KB
6010 LPRINT "X=";INT ((SX+0.0005)*1000)/1000;"Y=";INT ((SY+0.0005)*1000)/1000
6020 LPRINT "AP=";DMS A0;"D0=";INT ((D0+0.0005)*1000)/1000
6030 GOTO *N4
6040 END
6050 *M31
6060 M(1)=LS1/2/R(1)*180/PI
6070 M(2)=LS2/2/R(1)*180/PI
6080 M(3)=AK(1)-M(2)
6090 M(4)=LS1^2/24/R(1)
6100 M(5)=LS1/2-LS1^3/240/R(1)^2
6110 M(6)=LS2-LS2^3/40/R(1)^2
6120 M(7)=LS2^4/336/R(1)^3-LS2^2/6/R(1)
6130 M(8)=(M(5)+R(1)*SIN M(3))-M(6)*COS (180-AK(1))-M(7)*SIN (180-AK(1))
6140 M(9)=M(4)+R(1)*(1-COS M(3))-M(6)*SIN (180+AK(1))-M(7)*COS (180-AK(1))
6150 T2=M(9)/SIN AK(1):T1=M(8)-T2*COS AK(1)
6160 KS=R(1)*(AK(1)-M(1)-M(2))*PI /180
6170 KT=KS+LS1+LS2:J(1)=T1+T2-KT
6180 E(1)=(R(1)+(LS1+LS2)^2/96/R(1))/COS (AK(1)/2)-R(1)
6190 RETURN
6200 *M32
6210 IF I0=1THEN 6230
6220 L=KA-K(4):T(1)=T2:GOTO 6240
6230 L=KA-K(0):T(1)=T1
6240 GOSUB *M9
6250 RETURN
6260 *M33
6270 T(1)=T1:LS(1)=LS1:L=KA-K(1)
6280 GOSUB *M10
6290 RETURN
6300 *M34
6310 T(1)=T1:LS(1)=LS1:L=KA-K(2)
6320 GOSUB *M11
6330 RETURN
6340 *M35
6350 T(1)=T2:LS(1)=LS2:L=K(4)-KA
6360 GOSUB *M12
6370 RETURN
6380 *M36
6390 GOSUB *M7
6400 GOSUB *M8
6410 IF C=1THEN 6460
6420 IF Z=0THEN GOSUB *M32
6430 IF Z=1THEN GOSUB *M33
6440 IF Z=2THEN GOSUB *M34
6450 IF Z=3THEN GOSUB *M35
6460 RETURN
6470 *P2:POP=3
6480 GOSUB *T4
6490 GOSUB *T6
6500 READ N
6510 F=N-INT (N/10)*10:FF=INT (N/10000):FFF=INT ((N-FF*10000)/10):N=FFF-FF
6520 DIM K(9),X(3),Y(3),A(3),D(3),AK(2),W(2),R(2),LS(2),T(3),KP(F),KE(F)
6530 READ K(0),RR,X(0),Y(0),X(1),Y(1),R(1),LS(1),L0,X(2),Y(2),R(2),L0,LS(2),X(3),Y(3)
6540 IF F=0THEN 6560
6550 FOR I=1TO F:READ KP(I),KE(I):NEXT I
6560 K(0)=K(0)-RR:L0=2*L0
6570 ZZ=1:GOSUB *T7:GOSUB *D14
6580 GOSUB *M2
6590 ZZ=2:GOSUB *T7
6600 GOSUB *M4
6610 ZZ=3:GOSUB *T7
6620 P1=LS(1)^2/24/R(1):P2=LS(2)^2/24/R(2)
6630 Q1=LS(1)/2-LS(1)^3/240/R(1)^2:Q2=LS(2)/2-LS(2)^3/240/R(2)^2
6640 T(1)=(R(1)+P1)*TAN (AK(1)/2)+Q1:T(2)=(R(2)+P2)*TAN (AK(2)/2)+Q2
6650 L1=R(1)*AK(1)*PI /180:L2=R(2)*AK(2)*PI /180:LY1=L1-LS(1)/2-L0/2:LY2=L2-LS(2)/2-L0/2
6660 E1=(R(1)+P1)/COS (AK(1)/2)-R(1):E2=(R(2)+P2)/COS (AK(2)/2)-R(2)
6670 J1=T(1)*2-L1-Q1-LS(1)/2:J2=T(2)*2-L2-Q2-LS(2)/2
6680 ZZ=4:GOSUB *T7
6690 K(1)=K(0)+D(1)-T(1):K(2)=K(1)+LS(1):K(3)=K(2)+LY1:K(4)=K(3)+L0/2:K(5)=K(4):K(6)=K(5)+L0/2:K(7)=K(6)+LY2
6700 K(8)=K(7)+LS(2):K(9)=K(8)+D(3)-T(2)
6710 ZZ=5:GOSUB *T7
6720 IF R(1)>R(2)THEN I0=1:Z=2:KA=K(3):L=K(3)-K(2):I0=1:GOSUB *M11
6730 IF R(1)<R(2)THEN I0=2:Z=2:KA=K(6):GOSUB *M42
6740 XZ=SX:YZ=SY:AK=AF-90
6750 GOSUB *M40
6760 K=K(9)
6770 IF F=0THEN 6790
6780 FOR I=1TO F:K=K+KE(I)-KP(I):NEXT I
6790 XG=2:YG=3:GOSUB *M16
6800 L1=1:L2=23:L3=89:L4=8:GOSUB *T5
6810 *N5:LOCATE 18,3:PRINT " ":LOCATE 18,3:INPUT "K=";K$
6820 IF K$="QUIT"THEN GOSUB *T9
6830 IF K$="QUIT0"THEN GOSUB *D10
6840 IF K$="Q"THEN *T2
6850 IF "J"=LEFT$ (K$,1)THEN GOSUB *M19
6860 IF K$="QUIT0"OR K$="QUIT"OR "J"=LEFT$ (K$,1)THEN *N5
6870 GOSUB *M44
6880 IF C=1THEN *N5
6890 GOSUB *M14:GOSUB *M15
6900 LPRINT "K=";KB
6910 LPRINT "X=";INT ((SX+0.0005)*1000)/1000,"Y=";INT ((SY+0.0005)*1000)/1000
6920 LPRINT "AP=";DMS A0,"D0=";INT ((D0+0.0005)*1000)/1000
6930 GOTO *N5
6940 END
6950 *M40:REM *****LXQX*****
6960 IF R(1)>R(2)THEN WB=1:WW=0:R1=R(1):R2=R(2)
6970 IF R(2)>R(1)THEN WB=-1:WW=1:R1=R(2):R2=R(1)
6980 LL=R2*L0/(R1-R2)
6990 A1=90/PI *LL/R1
7000 A0=AK-A1*W(1)*WB+180*WW
7010 OO=LL-LL^3/40/R1^2
7020 OQ=(LL^2/6/R1-LL^4/336/R1^3)*W(1)*WB
7030 ABA=A0
7040 XX=XZ-OO*COS A0-OQ*SIN (-A0)
7050 YY=YZ-OO*SIN A0-OQ*COS A0
7060 RETURN
7070 *M41
7080 IF R(1)>R(2) THEN L1=KA-K(3)
7090 IF R(1)<R(2) THEN L1=K(6)-KA
7100 L=L1+LL:LS=LL+L0:AF=ABA+L^2/R2/LS*90/PI *W(1)*WB+90-180*WW
7110 X0=L-L^5/40/R2^2/LS^2:Y0=L^3/6/R2/LS-L^7/336/R2^3/LS^3:Y0=W(1)*Y0*WB
7120 X1=XX:Y1=YY:A0=ABA:GOSUB *M13
7130 RETURN
7140 *M42
7150 X1=X(2)+T(2)*COS A(3):Y1=Y(2)+T(2)*SIN A(3)
7160 X0=Q2:Y0=P2:L=K(7)-KA
7170 AA=(L/R(2)+LS(2)/R(2)/2)*180/PI
7180 A0=A(3)+180:AF=A(3)+90-AA*W(1)
7190 X0=X0+R(2)*SIN AA:Y0=-(Y0+R(2)*(1-COS AA))*W(1)
7200 GOSUB *M13
7210 RETURN
7220 *M44
7230 GOSUB *M7
7240 GOSUB *M8
7250 IF C=1THEN 7330
7260 IF Z=0AND I0=1THEN GOSUB *M9
7270 IF Z=1AND I0=1THEN GOSUB *M10
7280 IF Z=2AND I0=1THEN GOSUB *M11
7290 IF K(3)<KA AND KA<K(6)THEN GOSUB *M41
7300 IF Z=2AND I0=2THEN GOSUB *M42
7310 IF Z=3AND I0=2THEN GOSUB *M12
7320 IF Z=0AND I0=3THEN GOSUB *M9
7330 RETURN
7340 *P50:PRINT "****JD***JD***JD****"
7350 INPUT "N=";N
7360 DIM X(N),Y(N),A(N),D(N),AK(N),W(N)
7370 FOR I=0TO N
7380 PRINT "X(";I;")=";:INPUT X(I):PRINT "Y(";I;")=";:INPUT Y(I)
7390 NEXT I
7400 GOSUB *M2
7410 GOSUB *M4
7420 FOR I=1TO N-1
7430 PRINT "A(";I;")=";DMS A(I);"D(";I;")=";D(I);"AK(";I;")=";DMS (AK(I)*W(I)):INPUT P0$
7440 NEXT I
7450 PRINT "A(";I;")=";DMS A(I);"D(";I;")=";D(I):INPUT P0$
7460 LOCATE 35,3:PRINT "QUIT"
7470 GCURSOR (206,31):GPRINT "7F7F41":GCURSOR (235,31):GPRINT "417F7F"
7480 A$=INKEY$ :B=ASC A$:IF B>1THEN 7500
7490 GOTO 7480
7500 GOTO *T16
7510 *P51:PRINT "*****X****Y****R****A*****"
7520 INPUT "X=";X,"Y=";Y:PRINT
7530 LOCATE 35,3:PRINT "QUIT"
7540 GCURSOR (206,31):GPRINT "7F7F41":GCURSOR (235,31):GPRINT "417F7F"
7550 LOCATE 0,3:INPUT "D=";R$
7560 IF R$="QUIT"THEN 7610
7570 INPUT "A=";A:R=VAL R$
7580 X=X+R*COS (DEG A):Y=Y+R*SIN (DEG A)
7590 PRINT "X=";X;"Y=";Y:PRINT
7600 GOTO 7530
7610 GOTO *T16
7620 *P53:PRINT " ****A*R*LS**>>**T*L*E*J****"
7630 INPUT "A=";A
7640 INPUT "R=";R,"LS=";LS
7650 GOSUB 7800
7660 INPUT "May you input another ? (y/n)";A$
7670 IF A$="Y"THEN 7640
7680 GOTO *T16
7690 *P57:PRINT " ****A***T***LS**>>**R****"
7700 INPUT "A=";A
7710 INPUT "T=";T
7720 D=1/DEG A/PI *180
7730 DD=T/((D+1/24/D)*TAN (DEG A/2)+0.5-1/D^2/240)
7740 PRINT "(LS<=";DD;")";:INPUT "LS=";LS
7750 AA=(T-LS/2)/TAN (DEG A/2):AB=(AA^2-LS^2/6)^0.5:R=(AA+AB)/2:AA=(T-LS/2+LS^3/240/R^2)/TAN (DEG A/2):AB=(AA^2-LS^2/6)^0.5:R=(AA+AB)/2
7760 GOSUB 7800
7770 INPUT "May you input another ? (y/n)";A$
7780 IF A$="Y"THEN 7740
7790 GOTO *T16
7800 PRINT " <<************>>"
7810 INPUT "JD-K";K
7820 T=(R+LS^2/24/R)*TAN (DEG A/2)+LS/2-LS^3/240/R^2
7830 L=R*(DEG A*PI /180-LS/R)
7840 E=(R+LS^2/24/R)/COS (DEG A/2)-R
7850 J=2*T-L-LS*2
7860 PRINT "A=";A;"R=";R;"LS=";LS
7870 PRINT "T=";T;"L=";L+2*LS;"E=";E;"J=";J:INPUT P0$
7880 PRINT "**";K-T;K-T+LS;K-T+LS+L/2;K-T+LS+L;K-T+LS*2+L;"**"
7890 RETURN
7900 *P54:PRINT " ****A***T***R**>>**LS**"
7910 INPUT "A=";A
7920 INPUT "T=";T
7930 PRINT "(R<=";T/TAN (DEG A/2);")";:INPUT "R=";R
7940 AA=TAN (DEG A/2):LS=(-0.5+(0.25-AA*(R*AA-T)/6/R)^0.5)/AA*12*R:LS=(-0.5+(0.25-AA*(R*AA-T-LS^3/240/R^2)/6/R)^0.5)/AA*12*R
7950 GOSUB 7800
7960 INPUT "May you input another ? (y/n)";A$
7970 IF A$="Y"THEN 7930
7980 GOTO *T16
7990 *P55:PRINT " *****A***E***R**>>**LS*****"
8000 INPUT "A=";A
8010 INPUT "E=";E
8020 PRINT "(R<=";E/(1/COS (DEG A/2)-1);")";:INPUT "R=";R
8030 LS=(((E+R)*COS (DEG A/2)-R)*24*R)^0.5
8040 GOSUB 7800
8050 INPUT "May you input another ? (y/n)";A$
8060 IF A$="Y"THEN 8010
8070 GOTO *T16
8080 *P58:PRINT " *****A***E***LS**>>**R*****"
8090 INPUT "A=";A
8100 INPUT "E=";E
8110 D=1/DEG A*180/PI
8120 PRINT "(LS<=";E/((D+1/24/D)/COS (DEG A/2)-D);")";:INPUT "LS=";LS
8130 AA=COS (DEG A/2)
8140 R=(E*AA+(E^2*AA^2-(1-AA)*LS^2/6)^0.5)/2/(1-AA)
8150 GOSUB 7800
8160 INPUT "May you input another ? (y/n)";A$
8170 IF A$="Y"THEN 8100
8180 GOTO *T16
8190 *P56:PRINT "*****T1***A***T2***LS1***R**>>**LS2*****"
8200 INPUT "A=";A
8210 INPUT "T1=";T1,"T2=";T2
8220 INPUT "LS1=";LS1,"R=";R
8230 X1=LS1-LS1^3/40/R^2:Y1=LS1^2/6/R-LS1^4/336/R^3
8240 A=DEG A
8250 G1=T1*COS A+T2-(X1*COS A+Y1*SIN A)
8260 G2=T1*SIN A-X1*SIN A+Y1*COS A
8270 LS2=2*(G1-R*(1-(1-G2/R)^2)^0.5)
8280 Z=0
8290 Z=Z+1:GOSUB 8390
8300 IF Z<20THEN 8290
8310 KS=R*(A-(LS1+LS2)/R/PI *90)*PI /180
8320 E=(R+(LS1+LS2)^2/96/R)/COS (A/2)-R
8330 J=T1+T2-KS-LS1-LS2
8340 PRINT "T1=";T1;"a=";A;"T2=";T2
8350 PRINT "LS1=";LS1;"R=";R;"LS2=";LS2;"L=";KS+LS1+LS2;"E=";E;"J=";J
8360 INPUT "May you input another ? (y/n)";A$
8370 IF A$="Y"THEN 8220
8380 GOTO *T16
8390 LS2=2*(G1+LS2^3/240/R^2-R*(1-(1-(G2-LS2^2/24/R)/R)^2)^0.5)
8400 RETURN
8410 *P59:PRINT " ***-----*****-----***"
8420 INPUT "A1=";A1,"AB=";AB,"A2=";A2
8430 INPUT "LS1=";LS1,"R1=";R1,"LS2=";LS2
8440 P1=LS1^2/24/R1
8450 T1=(R1+P1)*TAN (DEG A1/2)
8460 T2=AB-T1
8470 FOR I=1TO 10
8480 R2=T2/TAN (DEG A2/2)-P2
8490 P2=LS2^2/24/R2
8500 NEXT I
8510 NP=P1-P2
8520 RF=R1*R2/(R1-R2)
8530 L0=(ABS (24*RF*NP))^0.5
8540 PRINT "R2=";R2;"L0=";L0
8550 P1=LS1^2/24/R1:P2=LS2^2/24/R2
8560 Q1=LS1/2-LS1^3/240/R1^2:Q2=LS2/2-LS2^3/240/R2^2
8570 T1=(R1+P1)*TAN (DEG A1/2)+Q1:T2=(R2+P2)*TAN (DEG A2/2)+Q2
8580 E1=(R1+P1)/COS (DEG A1/2)-R1:E2=(R2+P2)/COS (DEG A2/2)-R2
8590 PRINT "R2=";R2;"L0=";L0
8600 PRINT "T(1)=";T1;"T(2)=";T2
8610 PRINT "E(1)=";E1;"E(2)=";E2
8620 INPUT "May you input another ? (y/n)";A$
8630 IF A$="Y"THEN 8430
8640 GOTO *T16
8650 *P52:PRINT " -XY---XY--xy--XY---XY-"
8660 INPUT "X1=";X1,"Y1=";Y1,"X2=";X2,"Y2=";Y2,"X3=";X3,"Y3=";Y3,"X4=";X4,"Y4=";Y4
8670 IF X1-X2=0THEN Y0=Y3+(Y3-Y4)/(X3-X4)*(X1-X3):GOTO 8730
8680 IF X3-X4=0THEN Y0=Y1+(Y1-Y2)/(X1-X2)*(X3-X1):GOTO 8740
8690 K1=(Y1-Y2)/(X1-X2):K3=(Y3-Y4)/(X3-X4)
8700 X0=((Y1-Y3)+(K3*X3-K1*X1))/(K3-K1)
8710 Y0=Y1+K1*(X0-X1)
8720 GOTO 8750
8730 X0=X1:GOTO 8750
8740 X0=X3
8750 PRINT "X0=";X0;"Y0=";Y0:PRINT
8760 LOCATE 35,3:PRINT "QUIT"
8770 GCURSOR (206,31):GPRINT "7F7F41":GCURSOR (235,31):GPRINT "417F7F"
8780 A$=INKEY$ :B=ASC A$:IF B>1THEN 8800
8790 GOTO 8780
8800 GOTO *T16
8810 *P4
8820 CLS :H3=0
8830 GOSUB *T4
8840 READ N
8850 F=N-INT (N/10)*10:N=(N-F)/10
8860 DIM K(N),M(N),H(N),A(N),W(N),R(N),T(N),KP(F),KE(F)
8870 READ M(0),H(0):K(0)=M(0)
8880 FOR I=1TO N-1
8890 READ M(I),H(I),R(I)
8900 NEXT I
8910 READ M(N),H(N)
8920 IF F=0THEN 8940
8930 FOR I=1TO F:READ KP(I),KE(I):NEXT I
8940 GOSUB *M46
8950 FOR I=0TO N-1
8960 A(I)=INT (((H(I+1)-H(I))/(K(I+1)-K(I))+0.0000005)*1000000)/1000000
8970 NEXT I
8980 FOR I=1TO N-1
8990 T(I)=ABS (A(I)-A(I-1))*R(I)/2
9000 W(I)=ABS (A(I)-A(I-1))/(A(I)-A(I-1))
9010 NEXT I
9020 *N6:LOCATE 0,3:PRINT " ":LOCATE 0,3:INPUT "K=";K$
9030 IF K$="QUIT"THEN GOSUB *M45
9040 IF K$="Q"THEN *T2
9050 IF K$="QUIT"THEN *N6
9060 GOSUB *M48
9070 GOTO *N6
9080 END
9090 *M48
9100 IF K$="C"THEN 9130
9110 GOSUB *M7
9120 GOTO 9150
9130 LOCATE 18,3:PRINT " ":LOCATE 18,3:INPUT "C=";H3
9140 GOTO 9420
9150 IF KA>K(N)OR KB<K(0)THEN 9350
9160 FOR I=1TO N
9170 IF KA>=K(I-1)AND KA<=K(I)THEN 9190
9180 NEXT I
9190 H1=H(I-1)+A(I-1)*(KA-K(I-1)):H2=0
9200 IF KA>K(I)-T(I)THEN H2=W(I)*(T(I)+KA-K(I))^2/2/R(I)
9210 IF KA<K(I-1)+T(I-1)AND I>1THEN H2=W(I-1)*(K(I-1)+T(I-1)-KA)^2/R(I-1)/2
9220 GOSUB *T13
9230 PRINT "** ** H=a+b+c"
9240 K=KB:XG=2:YG=0:GOSUB *M16
9250 LOCATE 0,1:PRINT "a="
9260 D=H1:XG=2:YG=1:GOSUB *M17
9270 LOCATE 12,1:PRINT "b="
9280 D=H2:XG=14:YG=1:GOSUB *M17
9290 LOCATE 23,1:PRINT "c="
9300 D=H3:XG=25:YG=1:GOSUB *M17
9310 LOCATE 0,2:PRINT "H="
9320 D=H1+H2+H3:XG=2:YG=2:GOSUB *M17
9330 GOTO 9360
9340 LOCATE 17,3:PRINT "Out of range!":L1=100:L2=22:L3=80:L4=9:GOSUB *T5
9350 GOTO 9420
9360 IF KB>K(N-1)+T(N-1)OR KB<K(1)-T(1)THEN LOCATE 17,3:PRINT "Be careful !":L1=100:L2=22:L3=80:L4=9:GOSUB *T5
9370 IF KB=KA THEN 9390
9380 K=KA:XG=17:YG=3:GOSUB *M16:L1=100:L2=22:L3=80:L4=9:GOSUB *T5
9390 LPRINT "K=";KB
9400 LPRINT "a=";H1;"b=";H2;"c=";H3
9410 LPRINT "H=";H1+H2+H3
9420 RETURN
9430 *T13
9440 CLS
9450 GCURSOR (189,8):GPRINT "3C3C007FBEC0663A123A6E6742000000":GCURSOR (188,16):GPRINT "404042425E7A43437A5E42434260400000"
9460 GCURSOR (206,8):GPRINT "F8F01010FFFE10FFFE1010F0F8100000":GCURSOR (206,16):GPRINT "7F3F21213F3F213F3F21217F3F000000"
9470 GCURSOR (223,8):GPRINT "6058CEE772204848FFFE4849EB6A4000":GCURSOR (223,16):GPRINT "2667233212082010190F0C1F33617800"
9480 L1=186:L2=0:L3=53:L4=31:GOSUB *T5
9490 GCURSOR (200,26):GPRINT "FE1232528C001010101010000202FE020200101010101000FE92929282"
9500 GCURSOR (194,27):GPRINT "7F7F41":GCURSOR (231,27):GPRINT "417F7F"
9510 RETURN
9520 *T14
9530 LINE (118,0)-(118,15)
9540 LINE (66,15)-(66,21)
9550 LINE (170,15)-(170,21)
9560 LINE (66,15)-(170,15)
9570 LINE (0,15)-(60,15)
9580 LINE (176,15)-(238,15)
9590 RETURN
9600 *T15
9610 LINE (118,31)-(118,15)
9620 LINE (170,15)-(170,9)
9630 LINE (66,15)-(66,9)
9640 LINE (66,15)-(170,15)
9650 LINE (0,15)-(60,15)
9660 LINE (176,15)-(238,15)
9670 RETURN
9680 *M45
9690 I=1
9700 CLS
9710 LOCATE 1,1:PRINT A(I-1)*100;:PRINT "%"
9720 LOCATE 30,1:PRINT A(I)*100;"%"
9730 LOCATE 1,2:PRINT K(I)-K(I-1)
9740 LOCATE 30,2:PRINT K(I+1)-K(I)
9750 IF W(I)=-1THEN 9840
9760 LOCATE 0,0:PRINT "R- T- E-"
9770 D=R(I):XG=3:YG=0:GOSUB *M17
9780 D=T(I):XG=17:YG=0:GOSUB *M17
9790 D=T(I)^2/2/R(I):XG=30:YG=0:GOSUB *M17
9800 K=M(I):XG=20:YG=3:GOSUB *M16
9810 D=H(I):XG=10:YG=3:GOSUB *M17
9820 GOSUB *T15
9830 GOTO 9910
9840 LOCATE 0,3:PRINT "R- T- E-"
9850 D=R(I):XG=3:YG=3:GOSUB *M17
9860 D=T(I):XG=17:YG=3:GOSUB *M17
9870 D=T(I)^2/R(I)/2:XG=30:YG=3:GOSUB *M17
9880 K=M(I):XG=20:YG=0:GOSUB *M16
9890 D=H(I):XG=10:YG=0:GOSUB *M17
9900 GOSUB *T14
9910 A$=INKEY$
9920 B=ASC A$
9930 IF B=245THEN 10000
9940 IF B=4OR B=15THEN I=I-1:GOTO 9970
9950 IF B=5OR B=14OR B=13THEN I=I+1:GOTO 9970
9960 GOTO 9910
9970 IF I=N THEN I=1
9980 IF I=0 THEN I=N-1
9990 GOTO 9700
10000 CLS :RETURN
10010 *M46
10020 FOR I=1TO N
10030 K(I)=M(I):IF F=0THEN 10070
10040 FOR J=1TO F
10050 IF K(I)>KP(J)THEN K(I)=K(I)+KP(J)-KE(J)
10060 NEXT J
10070 NEXT I
10080 RETURN
10090 *T16
10100 CLEAR
10110 PRINT " 0..JD-JD-JD 1..XY->XY 2..XYxy-xyXY 3..T-E-J 4..A-T-R->Ls 5..A-E-R->Ls 6..LsL0Ls 7..A-T-Ls->R 8..A-E-Ls->R 9..Ls=\="
10120 GCURSOR (1,7):GPRINT "00FCF808880829CB8E0A0808E8CC0800":GCURSOR (1,15):GPRINT "403F0F4040435E484361584F43604000"
10130 GCURSOR (18,7):GPRINT "0000FFFE222222FEFE222222FEFF0200":GCURSOR (18,15):GPRINT "40381F070202027F3F0202227F3F0000"
10140 GCURSOR (36,7):GPRINT "44C4FEFE4342003F9E929292BE9F0200":GCURSOR (36,15):GPRINT "0E037F3F0306004044447F7F44644000"
10150 GCURSOR (54,7):GPRINT "0000FEFC0414145597D6743C14860400":GCURSOR (54,15):GPRINT "40201F0F010121217F3F010107030100"
10160 LOCATE 35,3:PRINT "QUIT"
10170 GCURSOR (206,31):GPRINT "7F7F41":GCURSOR (235,31):GPRINT "417F7F"
10180 A$=INKEY$
10190 B=ASC A$
10200 IF B=48THEN GOSUB *P50
10210 IF B=49THEN GOSUB *P51
10220 IF B=50THEN GOSUB *P52
10230 IF B=51THEN GOSUB *P53
10240 IF B=52THEN GOSUB *P54
10250 IF B=53THEN GOSUB *P55
10260 IF B=54THEN GOSUB *P59
10270 IF B=55THEN GOSUB *P57
10280 IF B=56THEN GOSUB *P58
10290 IF B=57THEN GOSUB *P56
10300 IF B=245THEN GOSUB *T2
10310 IF B>47AND B<57THEN 10100
10320 GOTO 10180
10330 *T17
10340 CLS
10350 GCURSOR (50,16):GPRINT "44C4FEFE4342003F9E929292BE9F0200":GCURSOR (50,24):GPRINT "0E037F3F0306004044447F7F44644000"
10360 GCURSOR (90,16):GPRINT "0000FEFC0414145597D6743C14860400":GCURSOR (90,24):GPRINT "40201F0F010121217F3F010107030100"
10370 GCURSOR (130,16):GPRINT "6058CEE772284848487F7E48684C0800":GCURSOR (130,24):GPRINT "2667233212087F3E222222227E3F0200"
10380 GCURSOR (170,16):GPRINT "0404F4E42424FFFF2424E4F42604000000":GCURSOR (170,24):GPRINT "402033190D077F7F05091B3130602000"
10390 BEEP 2,50,2
10400 END
10410 *M50
10420 CLS :QOO=1:PP=2
10430 GOSUB *T18:QOO=2
10440 *N7:LOCATE 16,3:PRINT " ":LOCATE 16,3:INPUT "K=";K$
10450 IF K$="QUIT"THEN 10620
10460 IF POP=1THEN GOSUB *M28
10470 IF POP=2THEN GOSUB *M36
10480 IF C=1 OR I0=0 OR I0=N THEN 10550
10490 UE=KB:IF Z=0THEN 10540
10500 UA=X0:UB=Y0:GOSUB *M14
10510 UC=A0:UD=D0:UF=T(I0)-ABS UA
10520 IF POP=1AND Z=2AND KA>K(4*I0-2)/2+K(4*I0-1)/2THEN 10560
10530 IF POP=2AND Z=2AND KA>K(2)/2+K(3)/2THEN 10590
10540 UB=W(I0)*ABS UB:GOSUB *M49
10550 GOTO *N7
10560 L=K(4*I0-1)-KA:AA=(L/R(I0)+LS(I0)/R(I0)/2)*180/PI
10570 UA=LS(I0)/2-LS(I0)^3/240/R(I0)^2+R(I0)*SIN AA:UB=LS(I0)^2/24/R(I0)+R(I0)*(1-COS AA):UF=T(I0)-UA
10580 GOTO 10540
10590 L=K(3)-KA:AA=(L/R(1)+LS2/R(1)/2)*180/PI
10600 UA=LS2/2-LS2^3/240/R(1)^2+R(1)*SIN AA:UB=LS2^2/24/R(1)+R(1)*(1-COS AA):UF=T2-UA
10610 GOTO 10540
10620 QOO=0:RETURN
10630 *M49
10640 GOSUB *T18
10650 K=UE:XG=2:YG=0
10660 LOCATE 0,0:PRINT "** **"
10670 GOSUB *M16
10680 IF Z=0THEN 10850
10690 AP=UC:XG=3:YG=1
10700 LOCATE 0,1:PRINT "AP="
10710 GOSUB *M18
10720 D=UD:XG=19:YG=1
10730 LOCATE 16,1:PRINT "D0="
10740 GOSUB *M17
10750 D=ABS UA:XG=3:YG=2
10760 LOCATE 0,2:PRINT " X="
10770 GOSUB *M17
10780 D=UB:XG=3:YG=3
10790 LOCATE 0,3:PRINT " Y="
10800 GOSUB *M17
10810 D=UF:XG=20:YG=2
10820 LOCATE 16,2:PRINT "T-X="
10830 GOSUB *M17
10840 GCURSOR (0,22):GPRINT "406050487C":GCURSOR (0,29):GPRINT "80C0A090F8"
10850 RETURN
10860 *T18
10870 CLS
10880 GCURSOR (188,8):GPRINT "04042464A4243F3F24E4F42404060400":GCURSOR (188,16):GPRINT "40402020111B0E040F1B103020602000"
10890 GCURSOR (188,24):GPRINT "7F3EE2BE7F02FFFE22222222E2F32200":GCURSOR (188,31):GPRINT "7C603F3F12087F3F2222222227332000"
10900 IF QOO=1THEN 10940
10910 IF C=1THEN 10980
10920 A$="3C7EFFFF8181423C":IF KA>K(4*I0-2)/2+K(4*I0-1)/2THEN A$="3C428181FFFF7E3C"
10930 GCURSOR (229,9):GPRINT A$
10940 IF QOO=2THEN GOSUB *T8
10950 LOCATE 35,3:PRINT "QUIT"
10960 GCURSOR (205,31):GPRINT "7F7F41":GCURSOR (235,31):GPRINT "417F7F"
10970 L1=186:L2=0:L3=53:L4=31:GOSUB *T5
10980 RETURN
10990 *DATA
11000 CLS
11010 PRINT " ***** #DATA# *****"
11020 INPUT "Scan document....(S) New document....(N) ";A$
11030 IF A$<>"N"THEN 11190
11040 INPUT "New document name=";NA$
11050 IF NA$="A"OR NA$="B"OR NA$="C"THEN 11070
11060 GOTO 11040
11070 GOSUB *D1
11080 I=1
11090 PRINT
11100 LOCATE 0,3:INPUT "NAME$=";N$:PRINT #1,N$:PRINT
11110 IF N$="QUIT"THEN 11170
11120 LOCATE 0,3:INPUT "X=";X:PRINT #1,X
11130 LOCATE 15,3:INPUT "Y=";Y:PRINT #1,Y
11140 LOCATE 30,3:INPUT "Z=";Z:PRINT #1,Z
11150 I=I+1
11160 GOTO 11090
11170 I=I-1:PRINT #2,I,1:CLOSE
11180 GOTO *T2
11190 INPUT "Document name=";NA$
11200 IF NA$="A"OR NA$="B"OR NA$="C"OR NA$="D"OR NA$="E"OR NA$="F"THEN 11220
11210 NM2=0:GOTO 11190
11220 GOSUB *D2
11230 GOSUB *D3
11240 A$=INKEY$
11250 B=ASC A$
11260 IF B=4OR B=15THEN E=E-1:GOSUB *D30
11270 IF B=5OR B=14OR B=13THEN E=E+1: GOSUB *D30
11280 IF B=241THEN GOSUB *D4
11290 IF B=242THEN GOSUB *D5
11300 IF B=243THEN GOSUB *D6
11310 IF B=244THEN GOSUB *D7
11320 IF B=245THEN 11340
11330 GOTO 11240
11340 GOSUB *D8
11350 GOTO *T2
11360 *D1
11370 IF NA$="A"THEN OPEN "E:A1#"FOR OUTPUT AS #1:OPEN "E:A2#"FOR OUTPUT AS #2
11380 IF NA$="B"THEN OPEN "E:B1#"FOR OUTPUT AS #1:OPEN "E:B2#"FOR OUTPUT AS #2
11390 IF NA$="C"THEN OPEN "E:C1#"FOR OUTPUT AS #1:OPEN "E:C2#"FOR OUTPUT AS #2
11400 RETURN
11410 *D2
11420 IF NA$="A"THEN OPEN "E:A1#"FOR INPUT AS #1:OPEN "E:A2#"FOR INPUT AS #2
11430 IF NA$="B"THEN OPEN "E:B1#"FOR INPUT AS #1:OPEN "E:B2#"FOR INPUT AS #2
11440 IF NA$="C"THEN OPEN "E:C1#"FOR INPUT AS #1:OPEN "E:C2#"FOR INPUT AS #2
11450 IF NA$="D"THEN OPEN "E:D#"FOR INPUT AS #1
11460 IF NA$="E"THEN OPEN "E:E#"FOR INPUT AS #1
11470 IF NA$="F"THEN OPEN "E:F#"FOR INPUT AS #1
11480 IF NA$="D"OR NA$="E"OR NA$="F"THEN INPUT #1,H01,H02,H03,H04,H05,H6,H07,H08,H09,H10:GOTO 12750
11490 INPUT #2,I,E
11500 DIM N0$(I+30),X0(I+30),Y0(I+30),Z0(I+30)
11510 FOR J=1TO I
11520 INPUT #1,N0$(J),X0(J),Y0(J),Z0(J)
11530 NEXT J
11540 CLOSE
11550 RETURN
11560 *D3
11570 CLS :PRINT " * * * * * * * * * * * *"
11580 LOCATE 0,3:PRINT " insert delete modify finger Quit"
11590 GOSUB *T3
11600 *D30
11610 IF E=0 THEN E=I
11620 IF E=I+1 THEN E=1
11630 LOCATE 0,NM2:PRINT "No.";E
11640 LOCATE 0,2:PRINT " "
11645 IF POP>0THEN LOCATE 0,2:PRINT N0$(E):LOCATE 6,2:PRINT "x=";X0(E):LOCATE 22,2:PRINT "y=";Y0(E):GOTO 11660
11650 LOCATE 0,1:PRINT N0$(E):LOCATE 6,1:PRINT "x=";X0(E):LOCATE 22,1:PRINT "y=";Y0(E):LOCATE 6,2:PRINT "z=";Z0(E)
11660 RETURN
11670 *D4
11680 I=I+1:E=E+1
11690 GOSUB *D9
11700 FOR J=I-1TO E STEP -1
11710 N0$(J+1)=N0$(J):X0(J+1)=X0(J):Y0(J+1)=Y0(J):Z0(J+1)=Z0(J)
11720 NEXT J
11730 N0$(E)=N$:X0(E)=X:Y0(E)=Y:Z0(E)=Z
11740 GOSUB *D30
11750 RETURN
11760 *D5
11770 I=I-1
11780 FOR J=E TO I
11790 N0$(J)=N0$(J+1):X0(J)=X0(J+1):Y0(J)=Y0(J+1):Z0(J)=Z0(J+1)
11800 NEXT J
11810 GOSUB *D30
11820 RETURN
11830 *D6
11840 GOSUB *D9
11850 N0$(E)=N$:X0(E)=X:Y0(E)=Y:Z0(E)=Z
11860 GOSUB *D30
11870 RETURN
11880 *D7
11890 LOCATE 4,0:PRINT " ":LOCATE 0,NM2:INPUT "No.=";E
11900 GOSUB *D30
11910 RETURN
11920 *D8
11930 GOSUB *D1
11940 FOR J=1TO I
11950 PRINT #1,N0$(J)
11960 PRINT #1,X0(J)
11970 PRINT #1,Y0(J)
11980 PRINT #1,Z0(J)
11990 NEXT J
12000 PRINT #2,I,E
12010 CLOSE
12020 RETURN
12030 *D9
12040 LOCATE 0,2:PRINT " "
12050 LOCATE 0,2:INPUT "name$=";N$:PRINT
12060 LOCATE 0,2:INPUT "x=";X
12070 LOCATE 13,2:INPUT "Y=";Y
12080 LOCATE 26,2:INPUT "Z=";Z
12090 RETURN
12100 *D10
12110 INPUT "Document name=";NA$:NM2=3
12120 GOSUB *D2:CLS
12130 LOCATE 0,3:PRINT " STN BS FINGER Quit"
12140 NM0=0:NM1=0
12150 GOSUB *T3
12160 LOCATE 0,3:PRINT " ":GOSUB *D30
12170 A$=INKEY$ :B=ASC A$
12180 IF B=4OR B=15THEN E=E-1:GOSUB *D30
12190 IF B=5OR B=14OR B=13THEN E=E+1: GOSUB *D30
12200 IF B=242THEN GOSUB *D11
12210 IF B=243THEN GOSUB *D12
12220 IF B=244THEN GOSUB *D7
12230 IF B=245THEN 12250
12240 GOTO 12170
12250 GOSUB *D15:CLS
12260 RETURN
12270 *D11
12280 STX=X0(E):STY=Y0(E):NM0=B
12290 A$="("+STR$ STX+","+STR$ STY+")":LOCATE 0,0:PRINT A$
12300 IF NM0+NM1=485THEN GOSUB *D13
12310 RETURN
12320 *D12
12330 SBX=X0(E):SBY=Y0(E):NM1=B
12340 A$="("+STR$ SBX+","+STR$ SBY+")":LOCATE 0,1:PRINT A$
12350 IF NM0+NM1=485THEN GOSUB *D13
12360 RETURN
12370 *D13
12380 X0=SBX-STX:Y0=SBY-STY+0.0000001
12390 GOSUB *M3
12400 AP=A0:D=D0
12410 XG=27:YG=0:GOSUB *M18
12420 XG=27:YG=1:GOSUB *M17
12430 RETURN
12440 *D14
12450 OPEN "E:SSS"FOR INPUT AS #1
12460 INPUT #1,STX,STY:CLOSE
12470 RETURN
12480 *D15
12490 OPEN "E:SSS"FOR OUTPUT AS #1
12500 PRINT #1,STX,STY:CLOSE
12510 RETURN
12520 *H
12530 CLS
12540 GOSUB *H1
12550 A$=INKEY$ :B=ASC A$
12560 IF B=241THEN *H2
12570 IF B=242THEN GOSUB *H3
12580 IF B=243THEN *H4
12590 IF B=245THEN 12610
12600 GOTO 12550
12610 GOTO 220
12620 *H1
12630 PRINT "** | **":LOCATE 20,1:PRINT "|"
12640 LINE (51,12)-(121,7):LINE (121,7)-(191,12)
12650 LINE (43,15)-(51,12):LINE (199,15)-(191,12)
12660 LOCATE 1,3:PRINT "D.E.F# i--w --|-- QUIT"
12670 GOSUB *T3
12680 LOCATE 24,3:PRINT " "
12690 RETURN
12700 *H2
12710 CLS
12720 INPUT "D.E.F#(s) name ?";H01$
12730 IF H01$<>"S"THEN GOTO 12770
12740 GOTO 11190
12750 PRINT "H01=";H01;"H02=";H02;"H03=";H03;"H04=";H04;"H05=";H05;"H06=";H06;"H07=";H07;"H08=";H08;"H09=";H09;"H10=";H10:PRINT :PRINT
12760 CLOSE :GOSUB 12660:GOTO 12550
12770 IF H01$="D"THEN OPEN "E:D#"FOR OUTPUT AS #1
12780 IF H01$="E"THEN OPEN "E:E#"FOR OUTPUT AS #1
12790 IF H01$="F"THEN OPEN "E:F#"FOR OUTPUT AS #1
12800 INPUT "H01=";H01,"H02=";H02,"H03=";H03,"H04=";H04,"H05=";H05,"H06=";H06,"H07=";H07,"H08=";H08,"H09=";H09,"H10=";H10
12810 PRINT #1,H01,H02,H03,H04,H05,H06,H07,H08,H09,H10:CLOSE
12820 GOTO 12530
12830 *H3
12840 INPUT "R=";R,"LS=";LS
12850 IF TT=1THEN 13290
12860 INPUT "D.E.F# ?";NA$
12870 IF NA$="D"THEN OPEN "E:D#"FOR INPUT AS #1
12880 IF NA$="E"THEN OPEN "E:E#"FOR INPUT AS #1
12890 IF NA$="F"THEN OPEN "E:F#"FOR INPUT AS #1
12900 INPUT #1,H01,H02,H03,H04,H05,H06,H07,H08,H09,H10:CLOSE
12910 IF TTT=1THEN 13820
12920 IF H01=0THEN RESTORE 13490:P=9
12930 IF H01=1THEN RESTORE 13500:P=5
12940 IF H01=2THEN RESTORE 13510:P=9
12950 IF H01=3THEN RESTORE 13520:P=5
12960 IF H01=4THEN RESTORE 13530:P=5
12970 IF H01=5THEN RESTORE 13540:P=5
12980 IF H01=6THEN RESTORE 13550:P=5
12990 IF H01=7THEN RESTORE 13560:P=5
13000 IF H01=10THEN RESTORE 13570:P=7
13010 IF H01=11THEN RESTORE 13580:P=7
13020 IF H01=12THEN RESTORE 13590:P=7
13030 IF H01=13THEN RESTORE 13600:P=7
13040 IF H01=20THEN RESTORE 13610:P=7
13050 IF H01=21THEN RESTORE 13620:P=5
13060 IF H01=22THEN RESTORE 13630:P=7
13070 IF H01=23THEN RESTORE 13640:P=5
13080 IF H01=30THEN RESTORE 13650:P=7
13090 IF H01=31THEN RESTORE 13660:P=5
13100 IF H01=32THEN RESTORE 13670:P=7
13110 IF H01=33THEN RESTORE 13680:P=5
13120 IF H01=40THEN RESTORE 13690:P=7
13130 IF H01=41THEN RESTORE 13700:P=5
13140 IF H01=42THEN RESTORE 13710:P=7
13150 IF H01=43THEN RESTORE 13720:P=5
13160 DIM R(9),W(8),R0(8)
13170 FOR J=0TO P
13180 READ R(J)
13190 NEXT J
13200 READ Q1,Q2
13210 Q=Q1:IF H02=2THEN Q=Q2
13220 IF H04=1THEN II=8:RESTORE 13740
13230 IF H04=2THEN II=5:RESTORE 13750
13240 IF H04=3THEN II=4:RESTORE 13760
13250 FOR J=0TO II:READ W(J):NEXT J
13260 RESTORE 13730
13270 FOR J=0TO 8:READ R0(J):NEXT J
13280 TT=1
13290 IF R>=R(0)OR R<R(P)THEN IC=0:GOTO 13330
13300 FOR J=1TO P
13310 IF R>=R(J)THEN IC=1+J:GOTO 13330
13320 NEXT J
13330 IF R>250OR R<R0(II)THEN W=0:GOTO 13370
13340 FOR J=0TO II
13350 IF R>=R0(J)THEN W=W(J):GOTO 13370
13360 NEXT J
13370 IF H06=2THEN H050=1
13380 IF H06=4THEN H050=1.5
13390 IF H06=6THEN H050=2
13400 LC0=H07*H03/2*(IC+H09)/(Q*H050)/100
13410 QQ=H07*H03/2*(IC+H09)/LS/100
13420 IF LC0>LS OR QQ<1/330THEN LC=LC0:GOTO 13440
13430 LC=LS
13440 CLS
13450 PRINT HA$;"#";"R=";R;"LS=";LS
13460 PRINT "LC'=";LC0;"LC0=";2*LC*H09/(IC+H09);"LC=";LC;"IC=";IC;"%";"W=";W
13470 GOTO 12660
13480 RETURN
13490 DATA 5500,3240,2160,1620,1300,1080,930,810,720,656,.004,.005
13500 DATA 5500,1940,1290,970,780,650,.004,.005
13510 DATA 4000,1710,1220,950,770,650,560,500,440,400,.004444444,0.0057142857
13520 DATA 4000,1550,1050,760,550,400,.004444444,.0065714857
13530 DATA 2500,1240,830,620,500,410,350,310,280,250,.005,.006666666
13540 DATA 2500,1130,750,520,360,250,.005,.006666666
13550 DATA 1500,810,570,430,340,280,230,200,160,125,.0057142857,.008
13560 DATA 1500,720,460,300,190,125,.0057142857,.008
13570 DATA 4000,1710,1220,950,770,650,560,500,440,400,.004444444,.005714857
13580 DATA 4000,1550,1050,760,550,400,.004444444,.005714857
13590 DATA 1500,810,570,430,340,280,230,200,160,125,.005714857,.008
13600 DATA 1500,720,460,300,190,125,.005714857,0.008
13610 DATA 2500,1210,840,630,500,410,320,250,.005,.006666666
13620 DATA 2500,1130,750,520,360,250,.005,.006666666
13630 DATA 600,390,270,200,150,120,90,60,.006666666,.01
13640 DATA 600,360,230,150,90,60,.006666666,.01
13650 DATA 1500,780,530,390,300,230,170,125,.005714857,.008
13660 DATA 1500,720,460,300,190,125,.005714857,.008
13670 DATA 350,230,150,110,80,60,50,30,.008,.013333333
13680 DATA 350,210,130,80,50,30,.008,.013333333
13690 DATA 600,390,270,200,150,120,90,60,.006666666,.01
13700 DATA 600,360,230,150,90,60,.006666666,.01
13710 DATA 150,105,70,55,40,30,20,15,0.01,.02
13720 DATA 150,95,60,40,25,15,.01,.02
13730 DATA 200,150,100,70,50,30,25,20,15
13740 DATA .4,.6,.8,1,1.2,1.4,1.8,2.2,2.5
13750 DATA .6,.7,.9,1.2,1.5,2
13760 DATA .8,1,1.5,2,2.5
13770 *H4
13780 INPUT "ZH=";ZH:LOCATE 12,3:INPUT "HZ=";HZ
13790 INPUT "LC=";LC:LOCATE 12,3:INPUT "R/L:";R$
13800 INPUT "Hi=";IY:LOCATE 12,3:INPUT "W=";W
13810 TTT=1:GOTO 12860
13820 TTT=0:IY=IY/100:IC=H09/100:IJ=H10/100:B=H07:A=H08:CLS
13830 LOCATE 0,3:INPUT "K=";K$
13840 K=VAL K$:IF K$="QUIT"THEN *H
13850 L=K:IF L<ZH OR L>HZ THEN GOTO 13830
13860 X=L-ZH:IF L>HZ-LC THEN X=HZ-L
13870 IF H05=1 THEN
13880 WX=W:IF X<LC THEN WX=X/LC*W
13890 ELSE
13900 WX=W:IF X<LC THEN KK=X/LC:WX=(4*KK^3-3*KK^4)*W
13910 ENDIF
13920 IF H02=2 THEN
13930 X0=IC/IY*LC
13940 IF X>LC THEN
13950 HCW=A*IJ+(A+B)*IY
13960 HCZ=A*IJ+B/2*IY
13970 HCL=A*IJ-(A+WX)*IY
13980 ELSE
13990 HCW=A*(IJ-IC)+(A*IC+(A+B)*IY)*X/LC
14000 HCZ=A*IJ+B/2*IC:IF X>X0 THEN HCZ=A*IJ+B/2*X/LC*IY
14010 HCL=A*IJ-(A+WX)*IC:IF X>X0 THEN HCL=A*IJ-(A+WX)*X/LC*IY
14020 ENDIF
14030 ELSE
14040 X0=2*IC/(IC+IY)*LC
14050 IF X>LC THEN
14060 HCW=A*IJ+B/2*IC+(A+B/2)*IY
14070 HCZ=A*IJ+B/2*IC
14080 HCL=A*IJ+B/2*IC-(A+B/2+WX)*IY
14090 ELSE
14100 HCW=A*(IJ-IC)+(A+B/2)*(IC+IY)*X/LC
14110 HCZ=A*IJ+B/2*IC
14120 HCL=A*IJ-(A+WX)*IC:IF X>X0 THEN HCL=A*IJ+B/2*IC-(A+B/2+WX)*X/LC*IY
14130 ENDIF
14140 ENDIF
14150 IF R$="R" THEN H1=HCW:H2=HCL:CC=35:GOTO 14170
14160 H1=HCL:H2=HCW:CC=9
14170 C1=10:IF H1<HCZ THEN C1=15
14180 C2=10:IF H2<HCZ THEN C2=15
14190 H1=INT (H1*100+0.5)/100:H2=INT (H2*100+0.5)/100:HCZ=INT (HCZ*100+0.5)/100:WX=INT (WX*100+0.5)/100
14200 W1=B/2+WX+A:W2=B/2+A:IF R$="R" THEN W1=B/2+A:W2=B/2+WX+A
14210 CLS :PRINT "K=";K
14220 LINE (61,C1)-(150,12):LINE (150,12)-(239,C2):LINE (150,10)-(150,14)
14230 HH=0:IF H03=2THEN HH=HCZ
14240 LOCATE 9,2:PRINT H1-HH
14250 LOCATE 17,0:PRINT W1
14260 LOCATE 22,2:PRINT HCZ-HH
14270 LOCATE 27,0:PRINT W2
14280 LOCATE 35,2:PRINT H2-HH
14290 LOCATE CC,0:PRINT WX
14300 LOCATE 35,3:PRINT "QUIT":GCURSOR (200,31):GPRINT "7F7F41":GCURSOR (237,31):GPRINT "417F7F"
14310 LPRINT "K=";K:LPRINT "W=";WX;"H1=";H1-HH;"H2=";HCZ-HH;"H3=";H2-HH
14320 GOTO 13830 |
|