1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        ROOTS2:   QUADRATIC EQUATION SOLVER
4  REM
5  REM        36625 REV  A   6/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
100  REM  THE ULTIMATE QUADRATIC SOLVER, UNTIL THE NEXT VERSION
110  REM CHARLES LOSIK, PIB, 7/21/70, BASIC
120  PRINT "THIS PROGRAM HANDLES ALL THE POSSIBLE CASES OF SOLUTION OF";
125  PRINT "THE EQUATION :"
130  PRINT 
140  PRINT "     A * X ^ 2  +  B * X  +  C  =  0"
150  PRINT 
160  PRINT "TYPE IN YOUR VALUES FOR A, B, AND C : ";
165  REM INPUT VALUES FOR A,B,C
170  INPUT A,B,C
171  PRINT 
175  REM FOR ALL CASES, CHECK A=0  IR SO, THEN LINEARITY
180  IF A=0 THEN 802
185  REM D IS THE DISCRIMINANT
190  LET D=B*B-4*A*C
195  LET Z=2*A
200  IF D=0 THEN 710
210  IF D>0 THEN 610
300  REM D<0,  IMAGINARY RESULTS
310  PRINT "DISCRIMINANT IS LESS THAN ZERO, SO ROOTS ARE IMAGINARY."
320  PRINT "THEY ARE OF THE FORM :  P+I*Q , P-I*Q , WHERE :"
330  PRINT "P="-B/Z,"Q="SQR(-D)/Z
340  GOTO 900
600  REM D>0, SO REAL ROOTS
610  PRINT "DISCRIMINANT IS GREATER THAN ZERO, SO ROOTS ARE REAL."
620  PRINT "ROOTS ARE X1 AND X2 ."
630  PRINT "X1 ="(-B+SQR(D))/Z,"X2 ="(-B-SQR(D))/Z
640  GOTO 900
700  REM EQUAL ROOTS (D=0)
710  PRINT "DISCRIMINANT IS EUQAL TO ZERO, SO ROOTS ARE EQUAL. X ="-B/Z
720  GOTO 900
800  REM A=0, SO X=-C/B, UNLESS B=0
802  IF B <> 0 THEN 810
803  IF C=0 THEN 807
804  PRINT "MEANINGLESS STATEMENT."
806  GOTO 900
807  PRINT "O.K., SO ZERO = ZERO."
808  GOTO 900
810  PRINT "THE EQUATION IS LINEAR.  X ="-C/B
900  PRINT 
901  PRINT TAB(30);"***"
905  PRINT 
910  PRINT 
920  PRINT "DO YOU WANT ANOTHER RUN (0 = NO , 1 = YES ) : ";
930  INPUT Z
940  IF Z=1 THEN 150
950  IF Z <> 0 THEN 920
999  END 
