10  REM ****  HP TIME-SHARED BASIC PROGRAM LIBRARY  ********************
20  REM
30  REM   QUADT: NATURE OF GRAPH OF A*X^2+B*X*Y+C*Y^2+D*X+E*Y+F=0
40  REM
50  REM   36335  (A801)  REV A -- 10/71
60  REM
70  REM ****  CONTRIBUTED PROGRAM  *************************************
80  REM QUADRT - COPYRIGHT 1971, POLYTECHNIC INSTITUTE OF BROOKLYN
90  REM QUENTIN J.O'CONNOR, COMMACK H.S.NORTH, JULY 16, 1969 
100  REM  REVISED BY C.LOSIK  8-7-70
110  REM  A,B,C,D,E,F ARE AS IN EQUATION
120  PRINT "    THIS PROGRAM DETERMINES THE NATURE OF THE GRAPH OF:"
130  PRINT "         A*X^2+B*X*Y+C*Y^2+D*X+E*Y+F=0"
140  PRINT "    ENTER YOUR CONSTANTS IN THE ORDER LISTED ABOVE."
150  PRINT " "
160  INPUT A,B,C,D,E,F
170  IF A*A+B*B+C*C+D*D+E*E+F*F>0 THEN 220
180  PRINT "    WITH ALL YOUR CONSTANTS EQUAL TO ZERO, ANY VALUES OF X"
190  PRINT "AND Y WILL SATISFY YOUR EQUATION. IN OTHER WORDS, YOUR"
200  PRINT "GRAPH IS A COMPLETE PLANE."
210  GOTO 560
220  IF A*A+B*B+C*C+D*D+E*E=0 THEN 510
230  IF A*A+B*B+C*C>0 THEN 250
240  GOTO 410
250  LET I=A+C
260  LET K=4*A*C-B*B
270  LET J=4*A*C+4*C*F+4*A*F-E*E-D*D-B*B
280  LET P=4*A*C*F+B*D*E-A*E*E-C*D*D-F*B*B
290  IF P=0 THEN 370
300  IF K=0 THEN 550
310  IF K<0 THEN 530
320  IF I*P>0 THEN 510
330  IF A <> C THEN 350
340  IF B=0 THEN 490
350  PRINT "THE GRAPH OF YOUR EQUATION IS AN ELLIPSE."
360  GOTO 560
370  IF K>0 THEN 470
380  IF K<0 THEN 450
390  IF J<0 THEN 430
400  IF J>0 THEN 510
410  PRINT "THE GRAPH OF YOUR EQUATION IS A SINGLE STRAIGHT LINE."
420  GOTO 560
430  PRINT "THE GRAPH OF YOUR EQUATION CONSISTS OF 2 PARALLEL LINES."
440  GOTO 560
450  PRINT "THE GRAPH OF YOUR EQUATION CONSISTS OF 2 INTERSECTING LINES."
460  GOTO 560
470  PRINT "THE GRAPH OF YOUR EQUATION IS A SINGLE POINT."
480  GOTO 560
490  PRINT "THE GRAPH OF YOUR EQUATION IS A CIRCLE."
500  GOTO 560
510  PRINT "THERE IS NO REAL LOCUS FOR YOUR EQUATION."
520  GOTO 560
530  PRINT "THE GRAPH OF YOUR EQUATION IS A HYPERBOLA."
540  GOTO 560
550  PRINT "THE GRAPH OF YOUR EQUATION IS A PARABOLA."
560  PRINT 
570  PRINT "ANOTHER RUN (1=YES, 0=NO) : ";
580  INPUT A
590  PRINT 
600  IF A=1 THEN 140
610  IF A <> 0 THEN 570
620  END 
