REM PROGRAM QUADROOT;PROGRAMMER MICHAEL P FINERTY, 9/5/84 REM THIS IS THE LISTING FOR PROGRAM QUADROOT.COM, AN S-BAISC PROGRAM REM THAT EVALUATES THE ROOTS OF QUADRATIC EQUATIONS USING THE REM COEFFICIENTS OF THE INDIVIDUAL TERMS: A,B,&C OF THE EQUATION: REM A*X^2 + B*X + C = 0 TO FIND THE POINTS OF INTERSECTION (TWO) REM OF THE CURVE WITH THE LINE Y = 0. THE ROOTS MAY BE EITHER REAL REM OR COMPLEX AND EITHER EQUAL OR UNEQUAL. IN THIS IMPLEMENTATION REM "A" CANNOT BE EQUAL TO ZERO. REM REM *** DECLARATION OF VARIABLES *** REM 10 VAR AXIS, A, B, C, DIF, DISCRIM = REAL VAR ANS = STRING REM REM *** INPUT OF VARAIABLES AND MESSAGES *** REM CONSOLE PRINT "PLEASE INPUT THE COEFFICIENTS OF YOUR QUADRATIC" INPUT "A = ";A IF A = 0 THEN PRINT "YOUR EQUATION IS NOT QUADRATIC" IF A = 0 THEN 10 LPRINTER PRINT "A = ";A CONSOLE REM INPUT "B = ";B LPRINTER PRINT "B = ";B CONSOLE REM INPUT "C = ";C LPRINTER PRINT "C = ";C CONSOLE REM REM *** AXIS IS AXIS OF SYMMETRY OF PARABOLA *** REM AXIS = -B/(2*A) REM REM *** ROOTS ARE AT DISTANCE DIF FROM AXIS *** REM IF B*B = 4*A*C THEN DIF = 0 IF B*B = 4*A*C THEN 20 REM DIF = ((ABS(B*B - 4*A*C))^0.5)/(2*A) REM REM *** ROOTS ARE REAL OR COMPLEX DEPENDING ON SIGN OF DISCRIM *** REM *** THEY ARE EQUAL IF DISCRIM IS ZERO *** REM 20 DISCRIM = B*B - 4*A*C REM REM REM ***************************************************************** REM REM LOGICAL PORTION OF PROGRAM : SGN(A) = 1 IF A GREATER THAN ZERO REM = 0 IF A EQUALS ZERO REM =-1 IF A LESS THAN ZERO REM CASE SGN(DISCRIM) OF -1: BEGIN PRINT "ROOTS ARE: "; AXIS;" +i*";DIF PRINT "AND: "; AXIS;" -i*";DIF PRINT "--ooO0Ooo--" LPRINTER PRINT "ROOTS ARE: "; AXIS;" +i*";DIF PRINT "AND: "; AXIS;" -i*";DIF PRINT "--ooO0Ooo--" CONSOLE END 0: BEGIN PRINT "ROOTS ARE: ";AXIS PRINT "AND: "; AXIS PRINT "--ooO0Ooo--" LPRINTER PRINT "ROOTS ARE: ";AXIS PRINT "AND: "; AXIS PRINT "--ooO0Ooo--" CONSOLE END 1: BEGIN PRINT "ROOTS ARE: "; AXIS + DIF PRINT "AND: "; AXIS - DIF PRINT "--ooO0Ooo--" LPRINTER PRINT "ROOTS ARE: "; AXIS + DIF PRINT "AND: "; AXIS - DIF PRINT "--ooO0Ooo--" CONSOLE END END PRINT LPRINTER PRINT CONSOLE REM REM *** CONDITIONAL LOOP FOR MORE QUADRATICS *** REM PRINT " DO YOU WANT TO USE ANOTHER QUADRATIC? Y/N?" INPUT ANS IF ANS = "Y" THEN 10 ELSE END