10  COM N5
20  REM PROGRAM NAME = FORCE2, FORCE AT ANGLE TO MOTION
30  REM CHAINED TO FORCE, FORCE1 - LINE 130 TO TEST
40  DIM H[20],V[20],A$[72],B$[72],F$[72]
50  A$=" 1 2 3 4 5 6 7 8 9 1011"
60  F=INT(5*RND(1)+1)
70  F$="10000002000000300000040000005000000"
80  F$=F$[F*7-6,F*7]
90  F=F*1000
100  LET M=INT(5*RND(1)+1)*1000
110  LET A=INT(((F/M)+.05)*10)/10
120  K2=240
121  GOTO 130
122  B$="A"
123  GOTO 670
130  PRINT 
140  GOTO N5-1 OF 150,560
150  PRINT '10"--------APPLYING A FORCE PERPENDICULAR TO THE DIRECTION OF MOTION:"'10
160  PRINT "YOU ARE THE PILOT OF A SPACE VEHICLE, MASS"M"KG, TRAVELING "
170  PRINT "TO THE RIGHT(IN A DIRECTION REPRESENTED HERE BY MOTION TO THE RIGHT)."
180  PRINT "YOUR VEHICLE IS BEING ACCELERATED BY A FORCE OF "F$" NEWTONS"
190  PRINT "APPLIED IN THE DIRECTION OF YOUR MOTION."
200  PRINT 
210  PRINT "YOU CAN APPLY ANOTHER FORCE TO YOUR VEHICLE, PERPENDICULAR TO"
212  PRINT "THE INITIAL FORCE (DOWN IN THE DIAGRAM).  OBSERVE THE EFFECT"
220  PRINT "ON THE PATH OF YOUR VEHICLE."
230  PRINT TAB(14)"!"'10'13TAB(14)"!"
240  PRINT " (APPLY FORCE IN THIS DIRECTION - DOWNRANGE)"
250  PRINT TAB(14)"!"'10'13TAB(14)"!"'10'13TAB(14)"V"
260  PRINT "        (VEHICLE) ------>  (MOVING THIS WAY)"
270  PRINT 
271  PRINT "THE PATH OF THE VEHICLE WILL BE PLOTTED FOR 50 KILOMETERS"
272  PRINT "DOWNRANGE, OR FOR 10 SECONDS, WHICHEVER OCCURS FIRST."
273  PRINT 
290  PRINT "HOW MUCH FORCE(NEWTONS) DO YOU WANT TO APPLY?  ";
300  D=90
310  LET D1=90*3.14159/180
320  ENTER K2,K3,F1
330  PRINT '13
340  IF K3<0 THEN 290
350  IF F1<.02*M THEN 370
360  GOTO 400
370  PRINT F1"NEWTONS FORCE WILL NOT GET YOU EVEN 1 KM DOWNRANGE."
380  PRINT "TRY A LARGER FORCE."
390  GOTO 290
400  LET F1=F1/1000
450  LET A=F/M
460  LET A1=F1/M
470  FOR T=1 TO 11
480  LET H[T]=INT((.5*A*T^2)+.5)
490  LET V[T]=INT((.5*A1*T^2)+.5)
500  NEXT T
510  LET U=U1=100
520  LET A5=ATN(U1/U)
530  LET A6=A5
540  GOTO 1180
550  PRINT '10'10'10
560  PRINT "--------APPLYING A FORCE AT AN ANGLE:"'10
570  PRINT "YOU ARE THE OPERATOR OF A DEFENSIVE SPACE STATION. YOUR STATION"
580  PRINT "IS EQUIPPED WITH INTERCEPTOR SPACE PROBES WHICH YOU MAY LAUNCH"
590  PRINT "AT ANY ANGLE BETWEEN 0 AND 90 DEGREES."
600  PRINT 
610  PRINT "----DIAGRAM:      P = PROBE LAUNCHING SITE"
620  PRINT '10"  ------------P----------- 0 DEGREES"
630  PRINT TAB(14)"!"'10'13TAB(14)"!       !---> (THIS IS TO THE RIGHT)"
640  PRINT TAB(14)"!"TAB(22)"!"'13'10TAB(14)"!"TAB(22)"!"'13'10TAB(14)"!"TAB(22)"V (THIS IS DOWNRANGE)"
650  PRINT TAB(14)"!"
660  PRINT TAB(13)"90 DEGREES"
670  LET N5=3
680  PRINT 
690  LET U=INT(35*RND(1)+10)
700  LET U1=INT(18*RND(1)+30)
710  LET F=0
720  LET C=0
725  IF B$="A" THEN 750
730  PRINT "A FOREIGN BODY IS DETECTED NEAR YOUR STATION.  YOUR TASK"
740  PRINT "IS TO SEND A PROBE TO MAKE CONTACT WITH IT.  THE BODY IS LOCATED"
750  PRINT U*1000"METERS TO THE RIGHT AND"U1*1000"METERS DOWNRANGE FROM YOU."
760  PRINT "IT IS NOT IN MOTION."
770  PRINT 
780  LET A5=ATN(U1/U)
790  LET A6=A5
800  LET A5=INT((A5*180/3.14159)+.5)
810  PRINT "THE SPACE PROBE HAS A MASS OF"M"KILOGRAMS."
820  LET R5=INT((((U1)^2+(U)^2)^.5)+.5)
830  PRINT "THE CONTACT MUST BE MADE WITHIN 10 SECONDS."
840  LET M1=0
860  K2=120
870  PRINT 
880  PRINT "HOW MUCH FORCE(NEWTONS) DO YOU WANT TO APPLY?  ";
890  ENTER K2,K3,F1
900  PRINT '13
910  IF K3<0 THEN 880
920  LET F1=F1/1000
930  IF F1>0 THEN 950
940  PRINT "     YOU MUST APPLY A FORCE GREATER THAN 0 NEWTONS."
941  GOTO 880
950  IF F<100*M THEN 960
951  PRINT "     YOU MUST APPLY A FORCE LESS THAN"100*M"NEWTONS."
952  GOTO 880
960  PRINT "AT WHAT ANGLE(DEGREES) DO YOU WANT TO SEND YOUR PROBE?  ";
970  ENTER K2,K3,D
980  PRINT '13
990  IF K3<0 THEN 960
1000  LET D=ABS(INT(D+.5))
1010  IF (D <= 0) OR (D >= 90) THEN 1060
1020  IF F1*SIN(D*3.14159/180)<M*.02 THEN 1040
1030  GOTO 1080
1040  PRINT "YOUR FORCE AND ANGLE WILL NOT GET YOU EVEN 1 KM DOWNRANGE."
1050  GOTO 870
1060  PRINT "     THE ANGLE MUST BE BETWEEN 0 AND 90 DEGREES."
1070  GOTO 960
1080  REM GRAPH
1090  LET D1=D*3.14159/180
1100  LET F2=(SIN(D1))*F1
1110  LET F3=(COS(D1))*F1
1120  LET A=F3/M
1130  LET A1=F2/M
1140  FOR T=1 TO 11
1150  LET H[T]=INT((.5*A*T^2)+.5)
1160  LET V[T]=INT((.5*A1*T^2)+.5)
1170  NEXT T
1180  PRINT '10"----PROJECTED PATH:"'10
1190  PRINT " 0         10        20        30        40        50 (KM TO RIGHT)"
1200  PRINT " !'''''''''!'''''''''!'''''''''!'''''''''!'''''''''!"
1210  PRINT "-*(INITIAL POSITION)"
1220  T=T1=1
1230  R2=ABS(U1*COS(D1)-U*SIN(D1))
1240  IF D1>A6 THEN 1280
1250  LET X6=INT(SIN(D1)*R2+.5)+U
1260  LET Y6=U1-INT(COS(D1)*R2+.5)
1270  GOTO 1300
1280  X6=U-INT(R2*SIN(D1)+.5)
1290  LET Y6=U1+INT(R2*COS(D1)+.5)
1300  FOR R=1 TO 25
1310  PRINT "-"'13;
1320  IF (2*R/10)#INT(2*R/10) THEN 1340
1330  PRINT 2*R'13;
1340  IF (2*R)#U1 AND (2*R+1)#U1 THEN 1360
1350  PRINT TAB(U)"+(FOREIGN BODY)"'13;
1360  FOR X=T TO 10
1362  IF V[X]=(2*R) OR V[X]=(2*R+1) THEN 1380
1364  NEXT X
1370  GOTO 1458
1380  T=X
1381  IF H[T]>49 THEN 1385
1382  PRINT TAB(H[T]+1)"*"'13;
1383  GOTO 1420
1385  PRINT TAB(50)'13;
1420  IF V[T+1]-V[T]>1 THEN 1451
1430  IF T=10 OR R=25 THEN 1780
1440  T=T+1
1450  GOTO 1310
1451  IF T=10 OR R=25 THEN 1780
1452  T=T+1
1458  PRINT 
1460  IF A5#D THEN 1500
1462  IF (2*R)=U1 OR (2*R+1)=U1 THEN 1660
1500  NEXT R
1510  GOTO 1780
1660  T5=(2*R5*M/F1)^.5
1670  PRINT '7'7'7'7'7"  SUCCESSFUL CONTACT"
1675  PRINT '10"(KM DOWNRANGE)"'10
1680  PRINT "TIME REQUIRED ="INT(T5*10)/10"SECONDS"
1690  LET M1=1
1700  GOTO 1810
1780  PRINT '10"(KM DOWNRANGE)"'10
1800  PRINT "TIME USED = "A$[2*T,2*T+1]" SECONDS"
1810  PRINT '10'10'10;
1820  IF N5=2 THEN 2430
1840  PRINT "ANGLE OF FOREIGN BODY FROM STATION ="A5"DEGREES"
1850  PRINT "YOUR ANGLE ="D"DEGREES"
1860  PRINT "MINIMUM SEPARATION BETWEEN YOUR PROBE AND BODY ="R2*1000"METERS"
1870  PRINT "OCCURED"X6*1000"METERS TO THE RIGHT OF THE ORIGIN AND"
1880  PRINT Y6*1000"METERS DOWNRANGE."
1890  PRINT 
1910  PRINT "DO YOU WANT TO LEARN HOW TO CALCULATE FOR A SUCCESSFUL CONTACT?  ";
1920  ENTER K2,K3,B$
1930  PRINT '13
1940  IF K3<0 THEN 1910
1950  IF B$="NO" THEN 2440
1960  IF B$#"YES" THEN 1910
1970  PRINT '10"----CALCULATING FOR A CONTACT:"'10
1980  PRINT "YOU MUST CALCULATE THE CORRECT ANGLE TO LAUNCH YOUR PROBE."
1990  PRINT "YOU CAN DO THIS BY FINDING THE TANGENT OF THE ANGLE."
2000  PRINT 
2010  PRINT " TANGENT OF ANGLE = (METERS DOWNRANGE)/(METERS TO RIGHT)"
2040  PRINT 
2050  PRINT "DO YOU NEED MORE HELP?  ";
2060  ENTER K2,K3,B$
2070  PRINT '13
2080  IF K3<0 THEN 2050
2090  IF B$="NO" THEN 570
2100  IF B$#"YES" THEN 2050
2110  PRINT 
2120  PRINT "TO SOLVE THIS PROBLEM YOU MUST BE ABLE TO USE THE "
2130  PRINT "TANGENT FUNCTION."
2140  PRINT 
2150  PRINT "CONSIDER THE DIAGRAM"
2160  PRINT 
2170  PRINT "         A             B"
2180  PRINT '10'10'10'10'10'10
2190  PRINT "                       C"
2200  PRINT 
2210  PRINT "IF YOU DRAW LINES FORM A TO B, B TO C, AND C TO A,"
2220  PRINT "ABC IS A RIGHT TRIANGLE."
2230  PRINT "IF YOU DIVIDE THE LENGTH OF SIDE BC BY THAT OF AB, YOU WILL OBTAIN"
2240  PRINT "A NUMBER WHICH IS CALLED THE TANGENT OF THE ANGLE CAB."
2250  PRINT "IT CAN BE USED AS FOLLOWS:"
2260  PRINT 
2270  PRINT "    TANGENT OF ANGLE = (METERS DOWNRANGE)/(METERS TO RIGHT)"
2300  PRINT 
2310  PRINT "                     = ("U1*1000"METERS)/("U*1000"METERS)"
2340  PRINT 
2350  PRINT "    TANGENT OF ANGLE = "U1/U
2360  PRINT "IF YOU LOOK UP THIS NUMBER IN A TABLE OF TRIGONOMETRIC"
2370  PRINT "FUNCTIONS UNDER THE 'TAN' COLUMN YOU WILL FIND THAT "U1/U
2380  PRINT "CORRESPONDS TO THE ANGLE "A5" DEGREES"
2390  PRINT 
2400  PRINT "LET'S TRY ANOTHER PROBLEM."
2410  PRINT '10'10'10'10
2420  GOTO 670
2430  PRINT 
2440  PRINT "DO YOU WANT TO TRY THIS PROBLEM AGAIN?  ";
2450  ENTER K2,K3,B$
2460  PRINT '13
2470  IF K3<0 THEN 2440
2480  IF B$="YES" THEN 2511
2490  IF B$#"NO" THEN 2440
2500  PRINT 
2510  GOTO N5-1 OF 2520,2560
2511  IF N5=2 THEN 270
2512  GOTO 870
2520  PRINT "LET'S TRY THE SITUATION WHERE YOU CAN VARY THE ANGLE BETWEEN"
2530  PRINT "0 AND 90 DEGREES."
2540  LET N5=N5+1
2550  GOTO 10
2560  PRINT "DO YOU WANT TO TRY ANOTHER SIMILAR PROBLEM?  ";
2570  ENTER K2,K3,B$
2580  PRINT '13
2590  IF B$="YES" THEN 10
2600  IF B$#"NO" THEN 2560
2610  END 
