home *** CD-ROM | disk | FTP | other *** search
- 0001:00 REM PROGRAM QUADROOT;PROGRAMMER MICHAEL P FINERTY, 9/5/84
- 0002:00 REM THIS IS THE LISTING FOR PROGRAM QUADROOT.COM, AN S-BAISC PROGRAM
- 0003:00 REM THAT EVALUATES THE ROOTS OF QUADRATIC EQUATIONS USING THE
- 0004:00 REM COEFFICIENTS OF THE INDIVIDUAL TERMS: A,B,&C OF THE EQUATION:
- 0005:00 REM A*X^2 + B*X + C = 0 TO FIND THE POINTS OF INTERSECTION (TWO)
- 0006:00 REM OF THE CURVE WITH THE LINE Y = 0. THE ROOTS MAY BE EITHER REAL
- 0007:00 REM OR COMPLEX AND EITHER EQUAL OR UNEQUAL. IN THIS IMPLEMENTATION
- 0008:00 REM "A" CANNOT BE EQUAL TO ZERO.
- 0009:00 REM
- 0010:00 REM *** DECLARATION OF VARIABLES ***
- 0011:00 REM
- 0012:00 10 VAR AXIS, A, B, C, DIF, DISCRIM = REAL
- 0013:00 VAR ANS = STRING
- 0014:00 REM
- 0015:00 REM *** INPUT OF VARAIABLES AND MESSAGES ***
- 0016:00 REM
- 0017:00 CONSOLE
- 0018:00 PRINT "PLEASE INPUT THE COEFFICIENTS OF YOUR QUADRATIC"
- 0019:00 INPUT "A = ";A
- 0020:00 IF A = 0 THEN PRINT "YOUR EQUATION IS NOT QUADRATIC"
- 0021:00 IF A = 0 THEN 10
- 0022:00 LPRINTER
- 0023:00 PRINT "A = ";A
- 0024:00 CONSOLE
- 0025:00 REM
- 0026:00 INPUT "B = ";B
- 0027:00 LPRINTER
- 0028:00 PRINT "B = ";B
- 0029:00 CONSOLE
- 0030:00 REM
- 0031:00 INPUT "C = ";C
- 0032:00 LPRINTER
- 0033:00 PRINT "C = ";C
- 0034:00 CONSOLE
- 0035:00 REM
- 0036:00 REM *** AXIS IS AXIS OF SYMMETRY OF PARABOLA ***
- 0037:00 REM
- 0038:00 AXIS = -B/(2*A)
- 0039:00 REM
- 0040:00 REM *** ROOTS ARE AT DISTANCE DIF FROM AXIS ***
- 0041:00 REM
- 0042:00 IF B*B = 4*A*C THEN DIF = 0
- 0043:00 IF B*B = 4*A*C THEN 20
- 0044:00 REM
- 0045:00 DIF = ((ABS(B*B - 4*A*C))^0.5)/(2*A)
- 0046:00 REM
- 0047:00 REM *** ROOTS ARE REAL OR COMPLEX DEPENDING ON SIGN OF DISCRIM ***
- 0048:00 REM *** THEY ARE EQUAL IF DISCRIM IS ZERO ***
- 0049:00 REM
- 0050:00 20 DISCRIM = B*B - 4*A*C
- 0051:00 REM
- 0052:00 REM
- 0053:00 REM *****************************************************************
- 0054:00 REM
- 0055:00 REM LOGICAL PORTION OF PROGRAM : SGN(A) = 1 IF A GREATER THAN ZERO
- 0056:00 REM = 0 IF A EQUALS ZERO
- 0057:00 REM =-1 IF A LESS THAN ZERO
- 0058:00 REM
- 0059:00 CASE SGN(DISCRIM) OF
- 0060:00 -1: BEGIN
- 0061:01 PRINT "ROOTS ARE: "; AXIS;" +i*";DIF
- 0062:01 PRINT "AND: "; AXIS;" -i*";DIF
- 0063:01 PRINT "--ooO0Ooo--"
- 0064:01 LPRINTER
- 0065:01 PRINT "ROOTS ARE: "; AXIS;" +i*";DIF
- 0066:01 PRINT "AND: "; AXIS;" -i*";DIF
- 0067:01 PRINT "--ooO0Ooo--"
- 0068:01 CONSOLE
- 0069:01 END
- 0070:00 0: BEGIN
- 0071:01 PRINT "ROOTS ARE: ";AXIS
- 0072:01 PRINT "AND: "; AXIS
- 0073:01 PRINT "--ooO0Ooo--"
- 0074:01 LPRINTER
- 0075:01 PRINT "ROOTS ARE: ";AXIS
- 0076:01 PRINT "AND: "; AXIS
- 0077:01 PRINT "--ooO0Ooo--"
- 0078:01 CONSOLE
- 0079:01 END
- 0080:00 1: BEGIN
- 0081:01 PRINT "ROOTS ARE: "; AXIS + DIF
- 0082:01 PRINT "AND: "; AXIS - DIF
- 0083:01 PRINT "--ooO0Ooo--"
- 0084:01 LPRINTER
- 0085:01 PRINT "ROOTS ARE: "; AXIS + DIF
- 0086:01 PRINT "AND: "; AXIS - DIF
- 0087:01 PRINT "--ooO0Ooo--"
- 0088:01 CONSOLE
- 0089:01 END
- 0090:00 END
- 0091:00 PRINT
- 0092:00 LPRINTER
- 0093:00 PRINT
- 0094:00 CONSOLE
- 0095:00 REM
- 0096:00 REM *** CONDITIONAL LOOP FOR MORE QUADRATICS ***
- 0097:00 REM
- 0098:00 PRINT " DO YOU WANT TO USE ANOTHER QUADRATIC? Y/N?"
- 0099:00 INPUT ANS
- 0100:00 IF ANS = "Y" THEN 10 ELSE END
- 0101:00 ****** End of program ******
-