10  COM Z6,E$[7],V8,J8,U$[72],V$[72],H[4],C3,Z[7],I9,W[7]
20  COM I,R7,N9,P[24,8],N5,P$[72],Q$[72],D[24,4],M[4],F7,T[4,2],R[16]
30  GOTO 60
40  CHAIN "$ANAL-1"
50  CHAIN "$ANAL-4"
60  P9=I
70  MAT D=ZER
80  F7=I-I
90  IF  NOT R7 THEN 490
100  PRINT "WOULD YOU LIKE TO EXAMINE THE DATA COLLECTED IN ACCORDANCE "
110  PRINT "WITH THE PLAN";
120  INPUT Q$[I,I]
130  IF Q$="Y" THEN 150
140  GOTO 500
150  PRINT 
160  IF  NOT Z[I] THEN 190
170  PRINT "FIXED VALUES"TAB(35)"VARIABLES"TAB(67)"COUNT"
180  GOTO 200
190  PRINT TAB(12)"VARIABLES"TAB(48)"COUNT"
200  FOR N1=I-I TO N5-I
210  P7=-9+2* NOT N1
220  FOR N2=I TO 6
230  IF  NOT Z[N2] THEN 290
240  P7=(P7-16)* NOT (P7<29 AND N2>2 AND Z[I])+29
250  IF N1 THEN 280
260  PRINT TAB(P7);E$[2*Z[N2]-I,2*Z[N2]-I];
270  GOTO 290
280  PRINT TAB(P7-2);P[N1,N2];
290  NEXT N2
300  IF  NOT N1 THEN 320
310  PRINT TAB(67-19* NOT Z[I]);P[N1,7];
320  PRINT 
330  IF  NOT N1 THEN 360
340  IF  NOT P[N1,8] THEN 360
350  PRINT 
360  NEXT N1
370  PRINT '10"AT THIS POINT IN THE 'ANALYSIS' YOU CAN CONTINUE WITH YOUR PLAN,"
380  PRINT "OR SELECT ANOTHER. THEREFORE, PLEASE RESPOND TO ONE OF THE FOLLOWING:"
390  PRINT TAB(15)"CONTINUE      (IF YOU WANT TO PROCEED)  OR,"
400  PRINT TAB(15)"ANOTHER       (TO TRY ANOTHER PLAN)"
410  INPUT Q$[I,I]
420  IF Q$="C" THEN 490
430  IF Q$="A" THEN 460
440  PRINT "YOU HAVE MADE AN ERROR IN TYPINC. TRY AGAIN."
450  GOTO 400
460  PRINT 
470  J8=I-I
480  GOTO 40
490  DIM A$[72],B[2,40],G[18],Z$[72],G$[72]
500  DIM K[4,72],K$[72],X$[72],Y$[20],D$[72],A[32]
510  PRINT 
520  K$="DEFINE A FUNCTION USING THE INDEPENDENT VARIABLE ("
530  J7=W=W1=-I
540  K=K1=I
550  A=255
560  X$=")+-*/^("'92"SINCOSTANATNABSINTSGNEXPLOGSQR"
570  RESTORE 
580  MAT  READ G
590  J7=J7+I
600  DATA -1,1,1,2,2,3,10,4,5,5,5,5,5,5,5,5,5,5
610  IF J7 THEN 650
620  D$=U$
630  P$=U$
640  GOTO 670
650  D$=V$
660  Q$=V$
670  PRINT K$[I,27],K$[29+2*J7,48]" ("D$"):"
680  PRINT TAB(12)"F("D$")=  ?";
690  Z=I
700  A$[I]="("
710  ENTER A,B,A$[2]
720  IF LEN(A$)=I OR LEN(A$)=72 THEN 670
730  IF J7 THEN 760
740  U$=A$[2]
750  GOTO 770
760  V$=A$[2]
770  PRINT 
780  IF LEN(A$)=I OR LEN(A$)=72 THEN 670
790  FOR Q5=I TO LEN(A$)
800  IF A$[Q5,Q5+I]#"^-" THEN 870
810  G$[I,Q5-I]=A$[I,Q5-2]
820  G$[Q5-I]="1/"
830  G$[Q5+I]=A$[Q5-I,Q5]
840  G$[Q5+3]=A$[Q5+2,LEN(A$)]
850  A$=G$
860  GOTO 880
870  NEXT Q5
880  A$[LEN(A$)+I]=")"
890  D=B=P= NOT I
900  FOR C=I TO LEN(A$)
910  IF C>LEN(A$) THEN 960
920  IF A$[C,C]#" " THEN 950
930  A$[C]=A$[C+I]
940  GOTO 910
950  NEXT C
960  FOR X=I TO LEN(A$)
970  FOR C=I TO 7
980  IF X$[C,C]=A$[X,X] THEN 1430
990  NEXT C
1000  IF  NOT Z THEN 1710
1010  IF A$[X+3,X+3]#"(" THEN 1050
1020  FOR M=9 TO LEN(X$) STEP 3
1030  IF X$[M,M+2]=A$[X,X+2] THEN 1250
1040  NEXT M
1050  D=D+I
1060  Z= NOT I
1070  Z$=A$[X]
1080  GOSUB 1790
1090  IF D1=I THEN 1140
1100  X=LEN(A$)-LEN(Z$)+D1-I
1110  K[I+2*J7,D]=Z9
1120  K[2+2*J7,D]=I
1130  GOTO 1670
1140  FOR V=I TO LEN(E$) STEP 2
1150  IF E$[V,V]=A$[X,X] THEN 1180
1160  NEXT V
1170  GOTO 1710
1180  FOR H1=3 TO 6
1190  IF 2*Z[H1]=V+I THEN 1220
1200  NEXT H1
1210  GOTO 1710
1220  K[I+2*J7,D]=H1
1230  K[2+2*J7,D]=2
1240  GOTO 1670
1250  IF W=I OR M>18 THEN 1320
1260  PRINT "ARE THE ARGUMENTS OF THE TRIG FUNCTIONS TO BE DEGREES OR RADIANS";
1270  INPUT Q$[I,I]
1280  IF Q$="R" THEN 1310
1290  IF Q$#"D" THEN 1260
1300  K=.0174533
1310  W=I
1320  C=6+INT(M/3)
1330  IF W1=I OR M#33 THEN 1430
1340  PRINT "DO YOU WANT TO USE NATURAL LOGS";
1350  INPUT Q$[I,I]
1360  IF Q$="Y" THEN 1420
1370  IF Q$#"N" THEN 1340
1380  PRINT "WHAT BASE DO YOU WANT TO USE";
1390  INPUT K1
1400  IF K1=I OR K1 <=  NOT I THEN 1380
1410  K1=LOG(K1)
1420  W1=I
1430  IF Z AND C=2 THEN 1670
1440  C=C+5*(Z AND C=3)
1450  IF SGN(7-C)=Z THEN 1710
1460  Z=C#I
1470  Q=G[C]+INT(P/10)*10
1480  X=X+2*(C>8)
1490  IF P<Q OR P=Q AND (G[C]=3 OR G[C]=4) THEN 1640
1500  FOR B=B TO I STEP -I
1510  IF B[2,B]<Q THEN 1610
1520  IF B[I,B]=7 THEN 1560
1530  D=D+I
1540  K[I+2*J7,D]=B[I,B]
1550  K[2+2*J7,D]= NOT I
1560  NEXT B
1570  IF X=LEN(A$) THEN 1680
1580  PRINT '10"YOU SEEM TO BE MISSING A LEFT PARENTHESIS."
1590  PRINT "TRY AGAIN."
1600  GOTO 670
1610  IF C#I THEN 1640
1620  P=B[2,B]
1630  GOTO 1670
1640  B=B+I
1650  B[2,B]=P=Q
1660  B[I,B]=C
1670  NEXT X
1680  IF  NOT B THEN 1740
1690  PRINT '10"YOU SEEM TO BE MISSING A RIGHT PARENTHESIS."
1700  GOTO 1590
1710  PRINT "SOMETHING IS WRONG. HERE IS THE PROBLEM."
1720  PRINT "  "A$[2,LEN(A$)-I]'10'13TAB(X)"^"
1730  GOTO 1590
1740  K[2+2*J7,D+I]=3
1750  IF  NOT J7 THEN 590
1760  M[I]=M[3]=1.70141E+38
1770  M[2]=M[4]=-M[I]
1780  GOTO 2050
1790  Y$="0123456789.-+"
1800  D1=Z9= NOT I
1810  GOSUB 1890
1820  Z9=Z2
1830  IF D1 OR Z3>LEN(Z$) THEN 2040
1840  IF Z$[Z3,Z3]#"E" THEN 2030
1850  Z$=Z$[Z3+I]
1860  GOSUB 1890
1870  Z9=Z9*10^Z2
1880  GOTO 2030
1890  Z1=Z2=Z5= NOT I
1900  IF  NOT LEN(Z$) THEN 2030
1910  FOR Z3=I TO LEN(Z$)
1920  FOR Z4=I TO LEN(Y$)
1930  IF Y$[Z4,Z4]=Z$[Z3,Z3] THEN 1970
1940  NEXT Z4
1950  D1=(I=Z3)
1960  RETURN 
1970  IF Z1 AND Z4=11 OR Z3#I AND Z4>11 THEN 2030
1980  Z1=Z1+Z3*(Z4=11)
1990  Z5=Z5+(Z4=12)
2000  Z2=Z2*10^( NOT Z1 AND Z4<11)+(Z4-I)/10^(Z3*SGN(Z1)-Z1)*(Z4<11)*(I-2*SGN(Z5))
2010  NEXT Z3
2020  RETURN 
2030  D1=Z3
2040  RETURN 
2050  PRINT 
2060  FOR X= NOT I TO I
2070  FOR Y=I TO N5-I
2080  G=H= NOT I
2090  G=G+I
2100  GOTO K[2*X+2,G] OF 2260,2290,2320
2110  O=K[2*X+I,G]
2120  IF H>(O<8) THEN 2160
2130  PRINT '10"THERE SEEMS TO BE A MISTAKE IN COMPILING YOUR FUNCTION. PLEASE"
2140  PRINT "TRY DEFINING IT AGAIN."
2150  GOTO 520
2160  C=A[H]
2170  IF O>7 THEN 2190
2180  B=A[H-I]
2190  E= NOT I
2200  IF  NOT C THEN 2220
2210  GOSUB O OF 2130,2400,2420,2440,2460,2480,2130,2530,2550,2550,2550,2610,2630,2630,2630,2650,2670,2700
2220  IF E THEN 520
2230  H=H-(O<8)
2240  A[H]=C
2250  GOTO 2090
2260  H=H+I
2270  A[H]=K[2*X+I,G]
2280  GOTO 2090
2290  H=H+I
2300  A[H]=P[Y,K[2*X+I,G]]
2310  GOTO 2090
2320  IF H#I THEN 2130
2330  D[Y,X+I]=H=A[I]
2340  M[I+2*X]=M[I+2*X] MIN H
2350  M[2+2*X]=M[2+2*X] MAX H
2360  J8=M[I+2*X]< NOT I
2370  NEXT Y
2380  NEXT X
2390  GOTO 50
2400  C=B+C
2410  RETURN 
2420  C=B-C
2430  RETURN 
2440  C=B*C
2450  RETURN 
2460  C=B/C
2470  RETURN 
2480  IF B< NOT I AND C#INT(C) OR  NOT B AND  NOT C THEN 2510
2490  C=B^C
2500  RETURN 
2510  PRINT "ILLEGAL EXPONENTIAL OPERATION."
2520  GOTO 2760
2530  C=-C
2540  RETURN 
2550  IF ABS(C)<1.E+06 THEN 2580
2560  PRINT "ILLEGAL ARG OF TRIG FUNCTION."
2570  GOTO 2760
2580  C=K*C
2590  C=SIN(C)*(O=9)+COS(C)*(O=10)+TAN(C*(O=11))
2600  RETURN 
2610  C=ATN(C)/K
2620  RETURN 
2630  C=ABS(C)*(O=13)+INT(C)*(O=14)+SGN(C)*(O=15)
2640  RETURN 
2650  C=EXP(C)
2660  RETURN 
2670  IF C< NOT I THEN 2750
2680  C=LOG(C)/K1
2690  RETURN 
2700  IF C< NOT I THEN 2730
2710  C=SQR(C)
2720  RETURN 
2730  PRINT "ATTEMPT TO TAKE THE SQUARE ROOT OF A NEGATIVE NUMBER."
2740  GOTO 2760
2750  PRINT "ATTEMPT TO TAKE THE LOG OF A NEGATIVE NUMBER."
2760  E=I
2770  RETURN 
2780  END 
