1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        QUADRA:   ANALYZES A QUADRATIC EQUATION
4  REM
5  REM        36704 REV  A   10/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
100  REM               DAVID GOLUB--QUADRATIC ANALYZER
110  PRINT "THIS PROGRAM ANALYZES A QUADRATIC EQUATION IN X AND Y."
120  PRINT "THE EQUATION IS:  AX^2+BXY+CY^2+DX+EY+F=O  ."
130  PRINT 
140  PRINT "TYPE YOUR COEFFICIENTS IN ORDER:  A,B,C,D,E,F"
150  PRINT "SEPARATED BY COMMAS."
160  PRINT 
170  PRINT "WHAT IS YOUR EQUATION";
180  INPUT A,B,C,D,E,F
190  PRINT 
200  IF A <> 0 THEN 320
210  IF B <> 0 THEN 320
220  IF C <> 0 THEN 320
230  REM              NOT QUADRATIC
240  IF D <> 0 THEN 290
250  IF E <> 0 THEN 290
260  PRINT "YOU HAVE GIVEN AN EQUATION WITH ALL THE COEFFICIENTS=0."
270  PRINT "I CANT ACCEPT THAT.  TRY AGAIN."
280  GOTO 1730
290  PRINT "THE EQUATION IS THE LINE :"
300  PRINT D;"X+"E;"Y="-F
310  GOTO 1730
320  P1=3.14159
330  Q=B^2-4*A*C
340  IF Q=0 THEN 1320
350  REM         ELLIPSE OF A HYPERBOLA
360  X=(2*C*D-B*E)/Q
370  Y=(2*A*E-B*D)/Q
380  F1=-(D*X/2+E*Y/2+F)
390  G=0
400  IF B=0 THEN 440
410  G=P1/4
420  IF A=C THEN 440
430  G=(.5)*ATN(B/(A-C))
440  U=COS(G)
450  V=SIN(G)
460  K=A*U^2+B*U*V+C*V^2
470  L=A*V^2-B*U*V+C*U^2
480  IF K>0 THEN 530
490  K=-K
500  L=-L
510  F1=-F1
520  REM          NEW EQUATION :  KX^2+LY^2=F1
530  IF Q>0 THEN 940
540  IF F1>0 THEN 610
550  IF F1=0 THEN 580
560  PRINT "THE EQUATION HAS NO REAL SOLUTION AND NO GRAPH."
570  GOTO 1730
580  PRINT "THE EQUATION IS A SINGLE POINT"
590  PRINT "AT ("X;","Y;")"
600  GOTO 1730
610  IF K <> L THEN 670
620  PRINT "THE EQUATION IS A CIRCLE WITH ECCENTRICITY 0."
630  PRINT "THE CENTER IS ("X;","Y;")"
640  PRINT "THE RADIUS IS "SQR(F1/K)
650  PRINT "THE AREA IS "P1*F1/K
660  GOTO 1730
670  IF K<L THEN 710
680  G=G+P1/2
690  GOTO 440
700  REM          ELLIPSE
710  A1=SQR(F1/ABS(K))
720  B1=SQR(F1/ABS(L))
730  C1=SQR(A1^2-B1^2)
740  PRINT "THE EQUATION IS AN ELLIPSE WITH ECCENTRICITY "C1/A1
750  PRINT "THE CENTER IS ("X;","Y;")"
760  PRINT "THE ANGLE FROM THE X-AXIS TO THE MAJOR AXIS"
770  PRINT "IS "G*180/P1;" DEGREES."
780  PRINT "THE FOCI ARE ("X+C1*U;","Y+C1*V;")"
790  PRINT "         ARE ("X+C1*U;","Y+C1*V;")"
800  PRINT "THE SUM OF THE FOCAL RADII IS"2*A1
810  PRINT "THE MAJOR AXIS HAS A LENGTH OF"2*A1
820  PRINT "THE MINOR AXIS HAS A LENGTH OF"2*B1
830  PRINT "THE FOCAL CHORD HAS A LENGTH OF"2*B1^1/A1
840  PRINT "THE MAJOR AXIS IS A LINE:"
850  PRINT -V;"X+"U;"Y="-V*X+U*Y
860  PRINT "THE MINOR AXIS IS THE LINE:  "
870  PRINT U;"X+"V;"Y="U*X+V*Y
880  PRINT "THE DIRECTRICES ARE THE LINES:"
890  PRINT U;"X+"V;"Y="U*X+V*Y+A1^2/C1
900  PRINT "AND"
910  PRINT U;"X+"V;"Y="U*X+V*Y-A1^2/C1
920  PRINT "THE AREA IS "P1*A1*B1
930  GOTO 1730
940  IF F1>0 THEN 1050
950  IF F1=0 THEN 980
960  G=G+P1/2
970  GOTO 440
980  B1=SQR(ABS(K))
990  A1=SQR(ABS(L))
1000  PRINT "THE EQUATION IS TWO LINES:"
1010  PRINT B1*U+A1*V;"X+"B1*V-A1*U;"Y="(B1*U+A1*V)*X+(B1*V-A1*U)*Y
1020  PRINT "AND"
1030  PRINT B1*U-A1*V;"X+"B1*V+A1*U;"Y="(B1*U-A1*V)*X+(B1*V+A1*U)*Y
1040  GOTO 1730
1050  A1=SQR(F1/ABS(K))
1060  B1=SQR(F1/ABS(L))
1070  C1=SQR(A1^2+B1^2)
1080  PRINT "THE EQUATION IS AN HYPERBOLA WITH ECCENTRICITY "C1/A1
1090  PRINT "THE CENTER IS ("X;","Y;")"
1100  PRINT "THE ANGLE FROM THE X-AXIS TO THE MAJOR AXIS"
1110  PRINT "IS "G*180/P1;" DEGREES."
1120  PRINT "THE FOCI ARE ("X+C1*U;","Y+C1*V;")"
1130  PRINT "         AND ("X-C1*U;","Y-C1*V;")"
1140  PRINT "THE DIFFERENCE OF THE FOCAL RADII IS "2*A1
1150  PRINT "THE MAJOR AXIS HAS A LENGTH OF "2*A1
1160  PRINT "THE MINOR AXIS HAS A LENGTH OF "2*B1
1170  PRINT "THE FOCAL CHORD HAS A LENGTH OF "2*B1^2/A1
1180  PRINT "THE MAJOR AXIS IS THE LINE:"
1190  PRINT -V;"X+"U;"Y="-V*X+U*Y
1200  PRINT "THE MINOR AXIS IS THE LINE:"
1210  PRINT U;"X+"V;"Y="U*X+V*Y
1220  PRINT "THE DIRECTRICES ARE THE LINES:"
1230  PRINT U;"X+"V;"Y="U*X+V*Y+A1^2/C1
1240  PRINT "AND"
1250  PRINT U;"X+"V;"Y="U*X+V*Y-A1^2/C1
1260  PRINT "THE ASYMPTOTES ARE THE LINES:"
1270  PRINT B1*U+A1*V;"X+"B1*V-A1*U;"Y="(B1*U+A1*V)*X+(B1*V-A1*U)*Y
1280  PRINT "AND"
1290  PRINT B1*U-A1*V;"X+"B1*V+A1*U;"Y="(B1*U-A1*V)*X+(B1*V+A1*U)*Y
1300  GOTO 1730
1310  REM              PARABOLA
1320  G=0
1330  IF A=0 THEN 1370
1340  G=P1/2
1350  IF B=0 THEN 1370
1360  G=ATN(-2*A/B)
1370  L=A+C
1380  M=D*(COS(G))+E*SIN(G)
1390  N=-D*SIN(G)+E*COS(G)
1400  IF ABS(M)<.00001 THEN 1610
1410  K1=-N/(2*L)
1420  H1=(-F+L*K1^2)/M
1430  C1=-L/(4*M)
1440  IF C1 >= 0 THEN 1480
1450  C1=-C1
1460  G=G+P1
1470  REM              EQUATION:  Y^2=4(C1)(X)
1480  PRINT "THE EQUATION IS A PARABOLA WITH ECCENTRICITY 1."
1490  PRINT "THE CENTER IS ("H1*COS(G)-K1*SIN(G);
1500  PRINT ","H1*SIN(G)+K1*COS(G);")"
1510  PRINT "THE ANGLE FROM THE X-AXIS TO THE AXIS OF SYMMETRY"
1520  PRINT "IS "G*180/P1;" DEGREES."
1530  PRINT "THE FOCUS IS ("(H1+C1)*COS(G)-K1*SIN(G);
1540  PRINT ","(H1+C1)*SIN(G)+K1*COS(G);")"
1550  PRINT "THE FOCAL CHORD HAS A LENGTH OF "4*C1
1560  PRINT "THE AXIS OF SYMMETRY IS THE LINE:"
1570  PRINT -SIN(G);"X+"COS(G);"Y="K1
1580  PRINT "THE DIRECTRIX IS THE LINE:"
1590  PRINT COS(G);"X+"SIN(G);"Y="H1-C1
1600  GOTO 1730
1610  S=N^2-4*L*F
1620  IF S >= 0 THEN 1650
1630  PRINT "THE EQUATION HAS NO REAL SOLUTION SET AND NO GRAPH."
1640  GOTO 1730
1650  IF S>0 THEN 1690
1660  PRINT "THE EQUATION IS THE LINE:"
1670  PRINT -SIN(G);"X+"COS(G);"Y="-N/(2*L)
1680  GOTO 1730
1690  PRINT "THE EQUATION IS TWO PARRALLEL LINES:"
1700  PRINT -SIN(G);"X+"COS(G);"Y="(-N+SQR(S))/(2*L)
1710  PRINT "AND"
1720  PRINT -SIN(G);"X+"COS(G);"Y="(-N-SQR(S))/(2*L)
1730  PRINT 
1740  PRINT 
1750  PRINT 
1760  PRINT 
1770  PRINT "DO YOU WANT TO RUN AGAIN";
1780  INPUT G$
1790  IF G$="Y" THEN 130
1800  END 
