10 ' ¹ÂºÞ³,ͲºÞ³ Ä×ÊÞ-½ ¿¸Ø®³ Ver. 3.21 20 *MAIN:DEFDBL :' --- Ò²Ý Ù°ÁÝ --- 30 CLS :DEGREE 40 S1$="E:" 50 S2$="F:" 60 S3$="X:" 70 S4$="CAS:" 80 SD$=".DAT" 90 FN$="¹ÂºÞ³" 100 ON ERROR GOTO *ERR 110 WAIT 0:PRINT "¹ÂºÞ³,ͲºÞ³ Ä×ÊÞ-½ ¿¸Ø®³ V.3.21 [100ÃÝ]" 120 Y=1:LOCATE 4,2:INPUT " [ 1:¹²¿Þ¸ 2:¼Ý· 3:Û°ÄÞ ] ";Y 130 IF Y=1THEN *LIST 140 IF Y=2THEN *INPUT1 150 IF Y>=4THEN *MAIN 160 REM 170 REM 180 REM 190 REM 200 *LOAD:' -------- ÃÞ°ÀÛ°ÄÞ --------- 210 SL=0 220 S=1:INPUT " ¿³ÁÒ² [ 1:E 2:F 3:X 4:CAS 5:·¬Ý¾Ù ]";S 230 IF S>=5THEN *MAIN 240 PRINT "̧²ÙÒ² [ ] ";" { ";FN$;SD$;" }" 250 LOCATE 9,3:INPUT FN$ 260 IF FN$="C"THEN *MAIN 270 ERASE NA$,HA,L,X,Y 280 DIM NA$(101),HA(101),L(101),X(101),Y(101) 290 IF S=4OPEN S4$+FN$+SD$ FOR INPUT AS #1:GOTO 330 300 IF S=3OPEN S3$+FN$+SD$ FOR INPUT AS #1:GOTO 330 310 IF S=2OPEN S2$+FN$+SD$ FOR INPUT AS #1:GOTO 330 320 OPEN S1$+FN$+SD$ FOR INPUT AS #1 330 WAIT 0:PRINT "¥¥¥¥¥¥ Û-ÄÞ Á­³ Just a moment Please !!" 340 INPUT #1,X1,Y1,X2,Y2,X3,Y3,X4,Y4,HA(*),L(*),X(*),Y(*),NA$(*) 350 CLOSE #1 360 IF Y2=0LET AZ=DEG X2:GOSUB *SUB2:AZ1=AZ:Z1$=Z$:GOTO 400 370 DX=X2-X1:DY=Y2-Y1 380 GOSUB *SUB1 390 L1=L0:AZ1=AZ:Z1$=Z$ 400 IF Y4=0LET AZ=DEG X4:GOSUB *SUB2:AZ2=AZ:Z2$=Z$:GOTO 440 410 DX=X4-X3:DY=Y4-Y3 420 GOSUB *SUB1 430 L2=L0:AZ2=AZ:Z2$=Z$ 440 GOTO *KEISAN 450 REM 460 REM 470 REM 480 REM 490 REM 500 *INPUT1:' --------- ²ÝÌß¯Ä 1 ------ 510 CLS :WAIT 0:USING "####,###.###" 520 LOCATE 0,2:PRINT "[ ͲºÞ³ X2=»²¼­³ÃÝÍÉγº¶¸(¼­¯¼¬Î³º³¶¸)][ Y2=0 ļà X3~Y4 Ê ØÀ-Ý ÃÞµ¸ÙºÄ ]" 530 LOCATE 0,0:INPUT "¼­¯ÊßÂÃÝ X1=";X1:X0=X1:X3=X1 540 LOCATE 20,0:INPUT " Y1=";Y1:Y0=Y1:Y3=Y1 550 LOCATE 0,1:INPUT " ÊÞ¯¸ÃÝ X2=";X2:X4=X2 560 LOCATE 20,1:INPUT " Y2=";Y2:Y4=Y2 570 IF Y2=0LET AZ=DEG X2:GOSUB *SUB2:AZ1=AZ:Z1$=Z$:GOTO 610 580 DX=X2-X1:DY=Y2-Y1 590 GOSUB *SUB1 600 L1=L0:AZ1=AZ:Z1$=Z$ 610 K=2:GOSUB *SUB4 620 K=3:GOSUB *SUB4 630 LOCATE 0,2:INPUT "ijÁ¬¸ÃÝ X3=";X3 640 LOCATE 20,2:INPUT " Y3=";Y3 650 LOCATE 0,3:INPUT " Ì«±-ÃÝ X4=";X4 660 LOCATE 20,3:INPUT " Y4=";Y4 670 IF Y4=0LET AZ=DEG X4:GOSUB *SUB2:AZ2=AZ:Z2$=Z$:GOTO 710 680 DX=X4-X3:DY=Y4-Y3 690 GOSUB *SUB1 700 L2=L0:AZ2=AZ:Z2$=Z$ 710 CLS :WAIT 0 720 LOCATE 0,0:PRINT "¼ÊÂÃÝ X1=";X1;" Y1=";Y1 730 IF X3=0 AND Y3=0 AND X4=0 AND Y4=0 THEN 790 740 IF Y2=0THEN 770 750 LOCATE 0,1:PRINT " AZ1=";Z1$ 760 LOCATE 25,1:PRINT "L1=";MDF L1:GOTO 830 770 LOCATE 0,1:PRINT " AZ1=";Z1$ 780 GOTO 830 790 IF Y2=0THEN 820 800 LOCATE 0,1:PRINT " AZ1=";Z1$ 810 LOCATE 25,1:WAIT :PRINT "L1=";MDF L1:GOTO 830 820 LOCATE 0,1:WAIT :PRINT " AZ1=";Z1$ 830 IF X3=0 AND Y3=0 AND X4=0 AND Y4=0 THEN 930 840 IF X4=0 AND Y4=0 THEN 870 850 LOCATE 0,2:PRINT "ijÀÂÃÝ X3=";X3;" Y3=";Y3 860 GOTO 890 870 LOCATE 0,2:WAIT :PRINT "ijÀÂÃÝ X3=";X3;" Y3=";Y3 880 GOTO 930 890 IF Y4=0THEN 920 900 LOCATE 0,3:WAIT 0:PRINT " AZ2=";Z2$ 910 LOCATE 25,3:WAIT :PRINT "L2=";MDF L2:GOTO 930 920 LOCATE 0,3:WAIT :PRINT " AZ2=";Z2$ 930 CLS :WAIT 0 940 REM 950 REM 960 REM 970 REM 980 REM 990 REM 1000 *INPUT2:' --------- ²ÝÌß¯Ä 2 ------ 1010 ERASE NA$,HA,L,X,Y 1020 DIM NA$(101),HA(101),L(101),X(101),Y(101) 1030 FOR I=1TO 100 1040 CLS :WAIT 0:USING "###" 1050 PRINT I; 1060 INPUT " NAME=";NA$(I) 1070 INPUT " HA=";HA(I):HA(I)=DEG HA(I):AZ=HA(I):GOSUB *SUB2:LOCATE 0,1:PRINT " HA=";Z$ 1080 IF X4=0 AND Y4=0 THEN 1100 1090 IF X1=X3 AND Y1=Y3 AND AZ1=AZ2 THEN 1130 1095 GOTO 1120 1100 LOCATE 0,3:PRINT "[ OPEN »²¼­³ÃÝÉ·ÞÉÃÝÊ HA=0 L=0 Ä½ÙºÄ ]" 1110 GOTO 1140 1120 LOCATE 0,3:PRINT "[ ¹ÂºÞ³ »²¼­³ÃÝÊ L=0 Ä½ÙºÄ ]":GOTO 1140 1130 LOCATE 0,3:PRINT "[ ͲºÞ³ »²¼­³ÃÝÉ·ÞÉÃÝÊ HA=0 L=0 Ä½ÙºÄ ]" 1140 LOCATE 0,2:INPUT " L=";L(I) 1150 IF L(I)<0GOSUB *SUB3 1160 IF L(I)=0LET I=100:GOTO 1170 1170 NEXT I 1180 K=3:GOSUB *SUB4 1190 WAIT :LOCATE 0,3 1200 Y=1:INPUT "ÃÞ°À É [ 1:ò¾² 2:¾°ÌÞ 3:¹²»Ý 4:ؽÄ]";Y 1210 IF Y<=1THEN *TEISEI 1220 IF Y=2THEN *SAVE 1230 IF Y>=4THEN *LIST 1240 GOTO *KEISAN 1250 REM 1260 REM 1270 REM 1280 REM 1290 REM 1300 *LIST:' -------- ÃÞ°À Ø½Ä -------- 1310 CLS :WAIT 0 1320 USING "####,###.###":' ¼Ó¹À 3 ¹À 1330 LOCATE 0,0:PRINT "¼ÊÂÃÝ X1=";X1;" Y1=";Y1 1340 IF X3=0 AND Y3=0 AND X4=0 AND Y4=0 THEN 1400 1350 IF Y2=0THEN 1380 1360 LOCATE 0,1:PRINT " AZ1=";Z1$ 1370 LOCATE 23,1:PRINT "L1=";MDF L1:GOTO 1440 1380 LOCATE 0,1:PRINT " AZ1=";Z1$ 1390 GOTO 1440 1400 IF Y2=0THEN 1430 1410 LOCATE 0,1:PRINT " AZ1=";Z1$ 1420 LOCATE 25,1:WAIT :PRINT "L1=";MDF L1:GOTO 1540 1430 LOCATE 0,1:WAIT :PRINT " AZ1=";Z1$ 1440 IF X3=0 AND Y3=0 AND X4=0 AND Y4=0 THEN 1540 1450 IF X4=0 AND Y4=0 THEN 1480 1460 LOCATE 0,2:PRINT "ijÀÂÃÝ X3=";X3;" Y3=";Y3 1470 GOTO 1500 1480 LOCATE 0,2:WAIT :PRINT "ijÀÂÃÝ X3=";X3;" Y3=";Y3 1490 GOTO 1540 1500 IF Y4=0THEN 1530 1510 LOCATE 0,3:WAIT 0:PRINT " AZ2=";Z2$ 1520 LOCATE 23,3:WAIT :PRINT "L2=";MDF L2:GOTO 1540 1530 LOCATE 0,3:WAIT :PRINT " AZ2=";Z2$ 1540 AZ0=AZ1+180:X0=X1:Y0=Y1 1550 FOR I=1TO 100 1560 CLS :WAIT 0 1570 USING "###":PRINT I; 1580 PRINT " NAME=";NA$(I) 1590 AZ=HA(I):GOSUB *SUB2:LOCATE 0,1:PRINT " HA=";Z$ 1600 USING "####,###.###":LOCATE 0,2:PRINT " L =";MDF L(I) 1610 AZ0=AZ0+HA(I)-180 1620 IF AZ0>=360LET AZ0=AZ0-360:GOTO 1620 1630 IF AZ0<0LET AZ0=AZ0+360:GOTO 1630 1640 IF L(I)=0LET I=100:GOTO 1680 1650 DX=L(I)*COS AZ0:DY=L(I)*SIN AZ0 1660 X0=X0+DX:Y0=Y0+DY 1670 LOCATE 0,3:WAIT :PRINT "µ-ÌßÝ X=";MDF X0;" Y=";MDF Y0 1680 NEXT I 1690 REM 1700 *TEISEI:' --------- ò¾² --------- 1710 WAIT 1720 Y=1:INPUT "ÃÞ°À É [1:ò¾² 2:¿³Æ­³ 3:»¸¼Þ® 4:¾°ÌÞ]";Y 1730 IF Y>4THEN *LIST 1740 IF Y=4THEN *SAVE 1750 IF Y=3THEN *DELETE 1760 IF Y=2THEN *INSERT 1770 Y=1:INPUT "ò¾² [ 1:NO. 2:XY,AZ 3:¹²»Ý 4:ؽÄ]";Y 1780 IF Y>=4THEN *LIST 1790 IF Y=3THEN *KEISAN 1800 IF Y=2THEN *TEISEI1 1810 N=0:INPUT "ò¾² NO. ";N 1820 IF N<=0THEN *KEISAN 1830 GOSUB *TEISEI2 1840 GOTO 1810 1850 REM 1860 REM 1870 REM 1880 REM 1890 REM 1900 *TEISEI1:' --------- ò¾² 1 ----- 1910 CLS :WAIT 0 1920 USING "####,###.####":' ¼Ó¹À 4 ¹À 1930 LOCATE 0,0:PRINT "¼ÊÂÃÝ X1=";X1 1940 LOCATE 0,1:PRINT " Y1=";Y1 1950 LOCATE 0,2:PRINT " ÊÞ¯¸ÃÝ X2=";X2 1960 LOCATE 0,3:PRINT " Y2=";Y2 1970 LOCATE 26,0:INPUT X1 1980 LOCATE 26,1:INPUT Y1 1990 LOCATE 26,2:INPUT X2 2000 LOCATE 26,3:INPUT Y2 2010 IF Y2=0LET AZ=DEG X2:GOSUB *SUB2:AZ1=AZ:Z1$=Z$:GOTO 2050 2020 DX=X2-X1:DY=Y2-Y1 2030 GOSUB *SUB1 2040 L1=L0:AZ1=AZ:Z1$=Z$ 2050 CLS 2060 LOCATE 0,0:PRINT "ijÀÂÃÝ X3=";X3 2070 LOCATE 0,1:PRINT " Y3=";Y3 2080 LOCATE 0,2:PRINT " Ì«±-ÃÝ X4=";X4 2090 LOCATE 0,3:PRINT " Y4=";Y4 2100 LOCATE 26,0:INPUT X3 2110 LOCATE 26,1:INPUT Y3 2120 LOCATE 26,2:INPUT X4 2130 LOCATE 26,3:INPUT Y4 2140 IF Y4=0LET AZ=DEG X4:GOSUB *SUB2:AZ2=AZ:Z2$=Z$:GOTO 2180 2150 DX=X4-X3:DY=Y4-Y3 2160 GOSUB *SUB1 2170 L2=L0:AZ2=AZ:Z2$=Z$ 2180 GOTO 1770 2190 REM 2200 *TEISEI2:' --------- ò¾² 2 ----- 2210 CLS :WAIT 0:USING "###":I=N 2220 LOCATE 0,0:PRINT N; 2230 PRINT " NAME=";NA$(N);" ò¾²" 2240 AZ=HA(N):GOSUB *SUB2 2250 LOCATE 0,1:PRINT " HA=";Z$ 2260 USING "###,###.###" 2270 LOCATE 0,2:PRINT " L =";L(N) 2280 LOCATE 25,0:INPUT NA$(N) 2290 HA=DMS HA(N):LOCATE 25,1:INPUT HA:IF HA<>DMS HA(N)LET HA(N)=DEG HA 2300 LOCATE 25,2:INPUT L(N):IF L(N)<0GOSUB *SUB3 2310 RETURN 2320 REM 2330 REM 2340 REM 2350 REM 2360 REM 2370 REM 2380 REM 2390 REM 2400 *INSERT:' -------- ¿³Æ­³ --------- 2410 N=0:INPUT "¿³Æ­³ NO. ";N 2420 IF N<=0THEN *LIST 2430 CLS :WAIT 0:I=N 2440 USING "###":PRINT N; 2450 PRINT " NAME=";NA$(N);" ¿³Æ­³" 2460 AZ=HA(N):GOSUB *SUB2 2470 LOCATE 0,1:PRINT " HA=";Z$ 2480 USING "###,###.###" 2490 LOCATE 0,2:PRINT " L =";L(N) 2500 LOCATE 25,0:INPUT NA$ 2510 LOCATE 25,1:INPUT HA:HA=DEG HA 2520 LOCATE 25,2:INPUT L 2530 IF L<0GOSUB *SUB33 2540 FOR I=N TO 100 2550 NA$(0)=NA$(I):HA(0)=HA(I):L(0)=L(I) 2560 NA$(I)=NA$:HA(I)=HA:L(I)=L 2570 NA$=NA$(0):HA=HA(0):L=L(0) 2580 IF L(I)=0LET I=100 2590 NEXT I 2600 GOTO *INSERT 2610 REM 2620 REM 2630 REM 2640 REM 2650 REM 2660 REM 2670 REM 2680 REM 2690 REM 2700 *DELETE:' -------- »¸¼Þ® --------- 2710 N=0:INPUT "»¸¼Þ® NO. ";N 2720 IF N<=0THEN *LIST 2730 CLS :WAIT 0 2740 USING "###":PRINT N; 2750 PRINT " NAME=";NA$(N);" »¸¼Þ®" 2760 AZ=HA(N):GOSUB *SUB2 2770 LOCATE 0,1:PRINT " HA=";Z$ 2780 USING "###,###.###" 2790 LOCATE 0,2:PRINT " L =";MDF L(N) 2800 Y$="N":INPUT " »¸¼Þ® (Y/N) ";Y$ 2810 IF Y$<>"Y"THEN 2860 2820 FOR I=N TO 100 2830 NA$(I)=NA$(I+1):HA(I)=HA(I+1):L(I)=L(I+1) 2840 IF L(I)=0LET I=100 2850 NEXT I 2860 GOTO *DELETE 2870 REM 2880 REM 2890 REM 2900 *KEISAN:' --------- ¹²»Ý --------- 2910 IF X3=0 AND Y3=0 AND X4=0 AND Y4=0 THEN *LIST 2920 AZ0=AZ1+180:X0=X1:Y0=Y1:TL=0 2930 FOR I=1TO 100 2940 TL=TL+L(I) 2950 AZ0=AZ0+HA(I)+180 2960 IF AZ0>=360LET AZ0=AZ0-360:GOTO 2960 2970 IF AZ0<0LET AZ0=AZ0+360:GOTO 2970 2980 J=I 2990 IF L(I)=0LET I=100:GOTO 3020 3000 DX=L(I)*COS AZ0:DY=L(I)*SIN AZ0 3010 X0=X0+DX:Y0=Y0+DY:X(I)=X0:Y(I)=Y0 3020 NEXT I 3030 IF X4=0 AND Y4=0 LET DAZ=0:EAZ=0:GOTO 3080 3040 DAZ=AZ0-AZ2 3050 IF DAZ>=0LET S=1:S$="+" 3060 IF DAZ<0LET S=-1:S$="-" 3070 DAZ=ABS DAZ 3080 CLS :WAIT 0:USING "###" 3090 IF X4=0 AND Y4=0 THEN 3130 3100 IF X1=X3 AND Y1=Y3 AND AZ1=AZ2 THEN 3130 3110 PRINT "Ä-ÀÙÎß²ÝÄ=";J;" ÃÝ" 3120 GOTO 3150 3130 PRINT "Ä-ÀÙÎß²ÝÄ=";J-1;" ÃÝ" 3140 IF X4=0 AND Y4=0 THEN 3250 3150 AZ=DAZ:GOSUB *SUB2 3160 PRINT " dAZ=";S$+Z$; 3170 IF X1=X3 AND Y1=Y3 AND AZ1=AZ2 THEN 3210 3180 IF S=1LET EAZ=-DAZ/J:S$="-" 3190 IF S=-1LET EAZ=DAZ/J:S$="+" 3200 GOTO 3230 3210 IF S=1LET EAZ=-DAZ/(J-1):S$="-" 3220 IF S=-1LET EAZ=DAZ/(J-1):S$="+" 3230 AZ=ABS EAZ:GOSUB *SUB2 3240 LOCATE 22,1:PRINT "eAZ=";S$+Z$ 3250 USING "###,###.###" 3260 DX=X(J-1)-X3:DY=Y(J-1)-Y3 3270 ERR=ABS TL/SQR (DX^2+DY^2) 3280 PRINT " dX=";MDF DX; 3290 PRINT " dY=";MDF DY 3300 USING "#######,###" 3310 PRINT " ¾²ÄÞ 1/";ERR; 3320 Y$="Y":INPUT " OK? (Y/N) ";Y$ 3330 IF Y$="Y"THEN 3350 3340 GOTO *LIST 3350 AZ0=AZ1+180:X0=X1:Y0=Y1:TDL=0 3360 FOR I=1TO 100 3370 TDL=TDL+L(I) 3380 AZ0=AZ0+HA(I)+EAZ+180 3390 IF AZ0>=360LET AZ0=AZ0-360:GOTO 3390 3400 IF AZ0<0LET AZ0=AZ0+360:GOTO 3400 3410 J=I 3420 IF L(I)=0LET I=100:GOTO 3450 3430 DX=L(I)*COS AZ0:DY=L(I)*SIN AZ0 3440 X0=X0+DX:Y0=Y0+DY:X(I)=X0:Y(I)=Y0 3450 NEXT I 3460 USING "###,###.###" 3470 DX=X(J-1)-X3:DY=Y(J-1)-Y3 3480 IF X4=0 AND Y4=0 THEN 3550 3490 PRINT " dX=";MDF DX; 3500 PRINT " dY=";MDF DY 3510 USING "#######,###" 3520 PRINT " ¾²ÄÞ 1/";ABS TL/SQR (DX^2+DY^2); 3530 Y$="Y":INPUT " OK? (Y/N) ";Y$ 3540 IF Y$="N"THEN *LIST 3550 EDX=-DX/TL:EDY=-DY/TL 3560 X=X(J-1)+EDX*TDL:Y=Y(J-1)+EDY*TDL 3570 WAIT 0 3580 REM 3590 REM 3600 *OUT:' ------ ±³ÄÌß¯Ä ----------- 3610 TDL=0 3620 FOR I=1TO 100 3630 TDL=TDL+L(I) 3640 IF L(I)=0LET I=100:GOTO 3870 3650 X=X(I)+EDX*TDL:Y=Y(I)+EDY*TDL 3660 CLS :WAIT 0 3670 USING "###":PRINT I; 3680 PRINT " ";NA$(I); 3690 USING "##,###.###" 3700 PRINT " TL=";TL; 3710 USING "###,###" 3720 PRINT " ¾²ÄÞ1/";ERR 3730 USING "####,###.###":' ¹À¼Ó 3 ¹À 3740 PRINT "µ-ÌßÝ X=";MDF X(I); 3750 PRINT " Y=";MDF Y(I) 3760 PRINT " ex=";MDF (EDX*TDL); 3770 PRINT " ey=";MDF (EDY*TDL) 3780 IF X4=0 AND Y4=0 THEN 3840 3790 IF X1=X3 AND Y1=Y3 AND AZ1=AZ2 THEN 3820 3800 PRINT "¹ÂºÞ³ X=";MDF X; 3810 GOTO 3850 3820 PRINT "ͲºÞ³ X=";MDF X; 3830 GOTO 3850 3840 PRINT "OPEN X=";MDF X; 3850 WAIT 3860 PRINT " Y=";MDF Y 3870 NEXT I 3880 CLS 3890 GOTO 1190 3900 *SAVE:' -------- ÃÞ°À¾°ÌÞ -------- 3910 WAIT 0 3920 SL=1 3930 S=1:INPUT " ¿³ÁÒ² [ 1:E 2:F 3:X 4:CAS 5:·¬Ý¾Ù ]";S 3940 IF S>=5THEN *KEISAN 3950 PRINT "̧²ÙÒ² [ ] ";" { ";FN$;SD$;" }" 3960 LOCATE 9,3:INPUT FN$ 3970 IF FN$="C"THEN *LIST 3980 IF S=4OPEN S4$+FN$+SD$ FOR OUTPUT AS #1:GOTO 4020 3990 IF S=3OPEN S3$+FN$+SD$ FOR OUTPUT AS #1:GOTO 4020 4000 IF S=2OPEN S2$+FN$+SD$ FOR OUTPUT AS #1:GOTO 4020 4010 OPEN S1$+FN$+SD$ FOR OUTPUT AS #1 4020 WAIT 0:PRINT "¥¥¥¥¥¥ ¾-ÌÞ Á­³ Just a moment Please !!" 4030 PRINT #1,X1,Y1,X2,Y2,X3,Y3,X4,Y4,HA(*),L(*),X(*),Y(*),NA$(*) 4040 CLOSE #1 4050 GOTO *KEISAN 4060 REM 4070 REM 4080 REM 4090 REM 4100 *ERR:' -------- ´×° ¼®Ø ---------- 4110 BEEP 2 4120 WAIT 0 4130 IF ERN =72AND SL=0PRINT "I/O error":RESUME 220 4140 IF ERN =72AND SL=1PRINT "I/O error":RESUME 3930 4150 IF ERN =75AND SL=0PRINT "Bad drive name":RESUME 220 4160 IF ERN =75AND SL=1PRINT "Bad drive name":RESUME 3930 4170 IF ERN =76AND SL=1PRINT "File write protected":RESUME 3930 4180 IF ERN =77PRINT "Disk full":RESUME 3930 4190 IF ERN =94PRINT "File not found":RESUME 220 4200 RESUME *LIST 4210 REM 4220 REM 4230 REM 4240 REM 4250 REM 4260 REM 4270 REM 4280 REM 4290 REM 4300 *SUB:' -------- »ÌÞÙ-ÁÝ ---------- 4310 *SUB1:' -------- REVERSE --------- 4320 L0=SQR (DX^2+DY^2):AZ=ASN (DY/(L0+ABS (L0=0))) 4330 AZ=(360+AZ)*ABS (DX>=0)+(180-AZ)*ABS (DX<0) 4340 IF AZ>=360LET AZ=AZ-360:GOTO 4340 4350 IF AZ<0LET AZ=AZ+360:GOTO 4350 4360 *SUB2:' -------- AZIMUTH --------- 4370 Z0=AZ:Z=DMS AZ 4380 P=INT Z:O=(Z-P)*100:Q=INT O:R=INT ((O-Q)*1000+0.5)/10 4390 Z$=STR$ P+CHR$ &DF+STR$ Q+CHR$ &27+STR$ R 4400 RETURN 4410 *SUB3:' -------- S->L --------- 4420 K=3:GOSUB *SUB4 4430 USING "####,###.###" 4440 LOCATE 0,3:PRINT " S=";ABS L(I) 4450 LOCATE 20,3:INPUT " V=";V 4460 IF V>0LET S=1:S$="+" 4470 IF V<=0LET S=-1:S$="-" 4480 V=DEG (ABS V):AZ=V:GOSUB *SUB2:LOCATE 20,3:PAUSE "V =";Z$ 4490 IF S=-1THEN 4530 4500 V=450+V 4510 IF V>=360LET V=V-360:GOTO 4510 4520 IF V<0LET V=V+360:GOTO 4520 4530 L(I)=ABS (L(I)*COS V) 4540 WAIT :LOCATE 20,3:PRINT "L =";MDF L(I) 4550 RETURN 4560 *SUB33:' -------- S->L --------- 4570 K=3:GOSUB *SUB4 4580 USING "####,###.###" 4590 LOCATE 0,3:PRINT " S=";ABS L 4600 LOCATE 20,3:INPUT " V=";V 4610 IF V>0LET S=1:S$="+" 4620 IF V<=0LET S=-1:S$="-" 4630 V=DEG (ABS V):AZ=V:GOSUB *SUB2:LOCATE 20,3:PAUSE "V =";Z$ 4640 IF S=-1THEN 4680 4650 V=450+V 4660 IF V>=360LET V=V-360:GOTO 4660 4670 IF V<0LET V=V+360:GOTO 4670 4680 L=ABS (L*COS V) 4690 WAIT :LOCATE 20,3:PRINT "L =";MDF L 4700 RETURN 4710 *SUB4:' -------- ¶-¿Ù¸Ø±- ----- 4720 WAIT 0:LOCATE 0,K:PRINT " ":LOCATE 0,K 4730 RETURN