10  COM N$[72],F$[72],X$[3],D,R,V1,V2,P,Q,F,T,A
20  COM Q$[1],K4,W,P$[1],A2,A3
30  REM PROGRAM NAME = MECHA1, BEGINS WITH 'MECHAN'
40  REM CHAINED TO MECHAN,MECHA4,MECHA5,MECHA6,MECHA7,MECHAG,MECHAT
50  GOTO 100
60  CHAIN "$MECHAG"
70  CHAIN "$MECHAT"
80  CHAIN "$MECHA4"
90  CHAIN "$MECHA5"
100  PRINT '10'10
110  IF Q$="A" THEN 600
120  IF Q$="B" THEN 1000
130  IF Q$="C" THEN 1360
140  IF Q$="D" THEN 1800
150  D=2700
160  R=86000.
170  V1=1800
180  GOTO 250
190  D=INT(9000*RND(1)+1000)
200  D=INT(D/100)*100
210  R=INT(90000.*RND(1)+10000)
220  R=INT(R/1000)*1000
230  V1=INT(9000*RND(1)+1000)
240  V1=INT(V1/100)*100
250  F=INT(500*RND(1)+100)
260  F=INT(F/10)*10
270  T=INT(20*RND(1)+5)
280  A2=INT(20*RND(1)+5)
290  A2=15
300  IF R/V1<10 THEN 210
310  GOTO P OF 320,660,1050,1430
320  IF P$="A" THEN 430
330  PRINT "PART 1:"
340  PRINT 
350  PRINT F$", YOU ARE THE NAVIGATOR ON A SPACE VEHICLE THAT IS TRYING"
360  PRINT "TO DELIVER A CAPSULE TO A SPACE STATION."
370  PRINT "YOU MUST MAINTAIN A DISTANCe OF"D"METERS BETWEEN YOUR VEHICLE"
380  PRINT "AND THE SPACE STATION. YOUR VEHICLE HAS A VELOCITY OF"
390  PRINT V1"METERS/SECOND IN THE X DIRECTION.  YOU MUST RELEASE "
400  PRINT "THE CAPSULE"R"METERS BEFORE YOU PASS THE STATION."
410  GOSUB 3380
420  PRINT 
430  PRINT "DISTANCE YO               ="D"METERS"
440  PRINT "DISTANCE OX              ="R"METERS"
450  PRINT "SPACE VEHICLE'S VELOCITY IN OX DIRECTION ="V1"METERS/SEC"
460  PRINT 
470  PRINT "THE CAPSULE MUST BE EJECTED AT POINT Y WITH A VELOCITY IN THE"
480  PRINT "DIRECTION OF YO."
490  PRINT 
500  IF P$="A" THEN 520
510  GOTO 540
520  V2=D*V1/R
530  PRINT V2
540  PRINT "WHAT EJECTION VELOCITY(M/SEC) DO YOU WANT?  ";
550  ENTER 200,W1,V2
560  PRINT 
570  LET V3=D/(R/V1)
580  Q$="A"
590  GOTO 60
600  V3=D/(R/V1)
610  IF ABS(V3-V2)<ABS(.01*V3) THEN 630
620  GOTO 3320
630  P=2
640  Q$="Z"
650  GOTO 3330
660  PRINT 
670  IF P$="A" THEN 730
680  PRINT "PART 2:"
690  PRINT 
700  PRINT '7'7'7"WARNING!!!!!    YOUR RANGE FINDER IS NOT OPERATING PROPERLY."
710  PRINT "YOU MUST DELIVER THE CAPSULE AS FOLLOWS:"
720  PRINT 
730  PRINT "THE CAPSULE'S FINAL VELOCITY IN THE YO DIRECTION MUST BE"
740  PRINT F"METERS/SECOND (THE INITIAL YO VELOCITY IS ZERO)."
750  PRINT "THE TOTAL ELAPSED TIME MUST BE"T"SECONDS."
760  PRINT 
770  IF P$="A" THEN 800
780  GOSUB 3380
790  PRINT 
800  PRINT "DISTANCE YO = UNKNOWN METERS"
810  PRINT "DISTANCE OX = UNKNOWN METERS"
820  PRINT "SPACE VEHICLE'S VELOCITY IN OX DERECTION = UNKNOWN METERS/SECOND"
830  PRINT 
840  IF P$="A" THEN 860
850  GOTO 880
860  A=F/T
870  PRINT A
880  PRINT "WHAT UNIFORM ACCELERATION(M/S/S) IN YO DIRECTION DO YOU WANT?  ";
890  LET K2=60
900  ENTER #K1,K2,K3,A
910  PRINT 
920  IF K3<0 THEN 830
930  PRINT 
940  PRINT "   TIME    VELOCITY"
950  FOR N=1 TO T
960  PRINT "    "N;TAB(11);A*N
970  NEXT N
980  Q$="B"
990  GOTO 60
1000  IF ABS(A-F/T)<ABS(.01*F/T) THEN 1020
1010  GOTO 3280
1020  P=3
1030  Q$="Z"
1040  GOTO 3330
1050  PRINT 
1060  IF P$="A" THEN 1140
1070  PRINT "PART 3:"
1080  PRINT 
1090  PRINT "THE CAPSULE IS EQUIPPED WITH A PROPULSION SYSTEM.  YOU"
1100  PRINT "CAN CONTROL ITS YO ACCELERATION AND BURN TIME."
1110  PRINT 
1120  GOSUB 3380
1130  PRINT 
1140  PRINT "DISTANCE YO       ="D"METERS."
1150  PRINT "DISTANCE OX      ="R"METERS."
1160  PRINT "SPACESHIP VELOCITY IN OX DIRECTION ="V1"METERS/SECOND"
1170  PRINT "SPACESHIP VELOCITY IN YO DIRECTION = 0 METERS/SECOND"
1180  PRINT 
1190  IF P$="A" THEN 1210
1200  GOTO 1240
1210  C1=R/V1
1220  C2=2*D/C1^2
1230  PRINT C2,C1
1240  PRINT "WHAT ACCELERATION(M/S/S - YO DIRECTION) DO YOU WANT?  ";
1250  K2=120
1260  ENTER #K1,K2,K3,A
1270  PRINT 
1280  IF K3<0 THEN 1240
1290  PRINT 
1300  PRINT "WHAT SHOULD THE BURN TIME(SECONDS) BE?  ";
1310  ENTER #K1,K2,K3,T
1320  PRINT 
1330  IF K3<0 THEN 1300
1340  Q$="C"
1350  GOTO 60
1360  T1=R/V1
1370  A1=2*D/T1^2
1380  IF ABS(T1*A1-A*T)<ABS(.01*A1*T1) THEN 1400
1390  GOTO 3300
1400  P=4
1410  Q$="Z"
1420  GOTO 3330
1430  PRINT 
1440  IF P$="A" THEN 1500
1450  PRINT "PART 4:"
1460  PRINT 
1470  PRINT F$", THE CAPSULE ACCELERATES IN THE OX DIRECTION WHEN RELEASED."
1480  PRINT 
1490  GOSUB 3380
1500  PRINT "DISTANCE YO         ="D"METERS."
1510  PRINT "DISTANCE OX        ="R"METERS."
1520  PRINT "SPACESHIP VELOCITY IN OX DIRECTION ="V1"METERS/SECOND"
1530  PRINT 
1540  PRINT "THE CAPSULE IS RELEASED AT POINT Y AND ACCELERATES IN THE"
1550  PRINT "OX DIRECTION AT"A2"(M/SEC)/SEC."
1560  PRINT 
1570  IF P$="A" THEN 1590
1580  GOTO 1610
1590  A3=2*D/(((-V1+SQR(V1^2+2*A2*R))/(A2))^2)
1600  PRINT A3
1610  K2=180
1620  PRINT 
1630  PRINT "WHAT ACCELERATION(M/S/S - YO DIRECTION) DO YOU WANT?  ";
1640  ENTER #K1,K2,K3,A3
1650  PRINT 
1660  LET T=T+1
1670  IF K3>0 THEN 1770
1680  PRINT 
1690  IF Q$="M" THEN 1610
1700  IF T>2 THEN 1870
1710  PRINT "YOU ARE"540-T*180"SECONDS FROM THE EJECTION POINT AND CLOSING"
1720  PRINT "AT"V1"METERS/SEC."
1730  PRINT 
1740  GOTO 1610
1750  PRINT 
1760  PRINT "YOU ARE IN NEED OF HELP TO COMPLETE YOUR MISSION."
1770  Q$="D"
1780  A=A3
1790  GOTO 60
1800  A4=2*D/(((-V1+SQR(V1^2+2*A2*R))/(A2))^2)
1810  IF ABS(A4-A3)>ABS(.01*A4) THEN 3140
1820  P=5
1830  Q$="Z"
1840  X$="A"
1850  PRINT 
1860  GOTO 3330
1870  PRINT F$", YOU ARE IN NEED OF HELP TO COMPLETE YOUR MISSION."
1880  PRINT "DO YOU WANT TO USE THE ONBOARD COMPUTER?  ";
1890  ENTER 200,W1,X$
1900  PRINT 
1910  IF X$="YES" THEN 1940
1920  IF X$#"NO" THEN 1800
1930  GOTO 1610
1940  PRINT 
1950  PRINT "THE COMPUTER IS PROGRAMMABLE USING THE FOLLOWING SYMBOLS"
1960  PRINT "AS VARIABLES:"
1970  PRINT 
1980  PRINT "VARIABLE               ","DEFINITION"
1990  PRINT 
2000  PRINT "X METERS               ","DISTANCE OX"
2010  PRINT "Y METERS               ","DISTANCE YO"
2020  PRINT "V METERS/SEC.         ","SPACESHIPS OX VELOCITY"
2030  PRINT "A (M/SEC)/SEC         ","CAPUSLE'S ACCELERATION IN OX DIRECTION"
2040  PRINT "T SECONDS             ","TIME REQUIRED FOR CAPSULE TO REACH X"
2050  PRINT "B (M/SEC)/SEC         ","CAPSULE'S ACCELERATION IN YO DIRECTION"
2060  PRINT 
2070  PRINT "YOU MUST FIND A VALUE FOR T"
2080  PRINT 
2090  PRINT "INPUT THE NUMBER OF VARIABLES YOU MUST USE.  ";
2100  ENTER 200,W1,V
2110  PRINT 
2120  IF V=4 THEN 2180
2130  IF V>4 THEN 2160
2140  PRINT "THERE ARE MORE VARIABLES REQUIRED."
2150  GOTO 2080
2160  PRINT "YOU HAVE USED TOO MANY VARIABLES."
2170  GOTO 2080
2180  PRINT "INPUT THE VARIABLES, ONE PER LINE."
2190  PRINT "DO NOT USE ANY SPACES"
2200  DIM A$[8],B$[8],C$[8],D$[8]
2210  INPUT A$,B$,C$,D$
2220  N1=1
2230  IF A$="X" THEN 2280
2240  IF A$="V" THEN 2280
2250  IF A$="A" THEN 2280
2260  IF A$="T" THEN 2280
2270  LET N1=0
2280  LET N2=1
2290  IF B$="X" THEN 2340
2300  IF B$="V" THEN 2340
2310  IF B$="A" THEN 2340
2320  IF B$="T" THEN 2340
2330  LET N2=0
2340  LET N3=1
2350  IF C$="X" THEN 2400
2360  IF C$="V" THEN 2400
2370  IF C$="A" THEN 2400
2380  IF C$="T" THEN 2400
2390  LET N3=0
2400  LET N4=1
2410  IF D$="X" THEN 2460
2420  IF D$="V" THEN 2460
2430  IF D$="A" THEN 2460
2440  IF D$="T" THEN 2460
2450  LET N4=0
2460  IF A$=B$ THEN 2520
2470  IF A$=C$ THEN 2520
2480  IF A$=D$ THEN 2520
2490  IF B$=C$ THEN 2520
2500  IF B$=D$ THEN 2520
2510  GOTO 2540
2520  PRINT "YOU HAVE USED ONE OF THE VARIABLES MORE THAN ONCE."
2530  GOTO 2180
2540  IF (N1 AND N2) AND (N3 AND N4) THEN 2680
2550  IF N1 THEN 2570
2560  LET A$=B$[5,4]
2570  IF N2 THEN 2590
2580  LET B$=A$[6,5]
2590  IF N3 THEN 2610
2600  LET C$=A$[5,4]
2610  IF N4 THEN 2630
2620  LET D$=A$[6,5]
2630  PRINT 
2640  PRINT "YOU HAVE USED SOME INCORRECT VARIABLES.  THESE CORRECT ONES"
2650  PRINT "MUST BE INCLUDED WHEN INPUTTING THE VARIABLES AGAIN:"
2660  PRINT "   "A$"   "B$"   "C$"    "D$
2670  GOTO 2180
2680  PRINT F$", YOU HAVE CORRECTLY IDENTIFIED THE FOUR VARIABLES."
2690  PRINT 
2700  PRINT "T = FINCTION("A$","B$","C$","D$")"
2710  PRINT 
2720  PRINT "WHAT IS THE ORDER OF THE EQUATION";
2730  ENTER 200,W1,M
2740  PRINT 
2750  IF M=2 THEN 2780
2760  PRINT "     TRY AGAIN"
2770  GOTO 2720
2780  PRINT "     CORRECT."'7
2790  PRINT 
2800  PRINT " T = X/(V + .5*A*T)"
2810  PRINT 
2820  PRINT "     WHERE"
2830  PRINT "X = "R"METERS"
2840  PRINT "V= "V1"METERS/SEC."
2850  PRINT "A ="A2"(M/SEC)/SEC"
2860  LET Z=A2
2870  LET G=V1*V1-2*A2*(-R)
2880  X1=(-V1+SQR(G))/Z
2890  PRINT 
2900  IF Q$="M" THEN 3070
2910  PRINT "     THIS IS A QUADRATIC EQUATION.  WOULD LIKE TO TRY TO"
2920  PRINT "     SOLVE IT YOURSELF?  ";
2930  ENTER 200,W1,X$
2940  PRINT 
2950  PRINT 
2960  IF X$="NO" THEN 3070
2970  IF X$#"YES" THEN 2910
2980  K2=180
2990  PRINT "T(SECONDS) = ";
3000  ENTER K2,K3,X2
3010  PRINT 
3020  IF K3<0 THEN 2990
3030  IF ABS((X2-X1)/X1)>.1 THEN 3060
3040  PRINT "     CLOSE ENOUGH - WITHIN 10%"
3050  GOTO 3080
3060  PRINT "     SORRY, THE CORRECT TIME IS ";
3070  PRINT "T = "X1"SECONDS"
3080  PRINT 
3090  PRINT "THE TOTAL TIME TO TRAVEL DISTANCE YO IS "X1"SECONDS"
3100  PRINT "THE DISTANCE YO ="D"METERS"
3110  PRINT 
3120  IF Q$="M" THEN 3510
3130  GOTO 1610
3140  PRINT 
3150  PRINT "     YOU WILL MISS."'10
3160  PRINT "HAVE YOU USED THE ONBOARD COMPUTER?  ";
3170  ENTER 200,W1,X$
3180  PRINT 
3190  IF X$="YES" THEN 3220
3200  IF X$#"NO" THEN 3160
3210  GOTO 1870
3220  PRINT 
3230  Q$="M"
3240  GOTO 2790
3250  ENTER 200,W1,A3
3260  PRINT 
3270  GOTO 60
3280  P=2
3290  GOTO 70
3300  P=3
3310  GOTO 70
3320  GOTO 70
3330  PRINT "RIGHT ON, "F$"!!  YOU ARE WITHIN 1% OF THE CORRECT VALUE!"
3340  IF P=5 THEN 80
3350  X$="A"
3360  GOTO 190
3370  GOTO 80
3380  PRINT 
3390  PRINT "HERE IS A MAP OF YOUR PROBLEM:"
3400  PRINT 
3410  PRINT "Y (SPACE VEHICLE)-->"
3420  PRINT "!"
3430  PRINT "!"
3440  PRINT "!"
3450  PRINT "!"
3460  PRINT "!"
3470  PRINT "!"
3480  PRINT "O----------------------------------------X (SPACE STATION)"
3490  RETURN 
3500  END 
3510  PRINT 
3520  PRINT "     D(YO) = (1/2)(A)(T^2) + (INITIAL V)(T)"
3530  PRINT "          INITIAL V = 0"
3540  PRINT "     D = (1/2)(A)(T^2)"
3550  PRINT " AND A = (2*D)/(T^2)"
3560  Q$="Z"
3570  GOTO 1610
3580  END 
