'Quadratic Graphing Program ver 6 SCREEN 12 CLS COLOR 14 PRINT "Quadratic Graphing Program" COLOR 7 PRINT STRING$(79, "-") COLOR 15 PRINT "Input for equation (ax^2 + bx + c = 0)" PRINT "Values for a, b, c: "; COLOR 14 INPUT "", a, b, c PRINT : PRINT XAxis = -(b / (2 * a)) YAxis = (a * (XAxis ^ 2)) + (b * XAxis) + (c) Discrim = (b ^ 2 - 4 * a * c) COLOR 15 PRINT "Axis of Symmetry:"; : COLOR 14: PRINT XAxis: COLOR 15 PRINT "Vertex:"; : COLOR 14: PRINT "("; XAxis; ","; YAxis; ")": COLOR 15 PRINT "Discriminative:"; : COLOR 14: PRINT Discrim: COLOR 15 PRINT : PRINT IF Discrim > 0 THEN PRINT "Parabola has 2 real roots:"; : COLOR 14 PRINT "{"; (-b + SQR(Discrim)) / (2 * a); ","; (-b - SQR(Discrim)) / (2 * a); "}" COLOR 15 ELSEIF Discrim = 0 THEN PRINT "Parabola has 1 real root:"; : COLOR 14 PRINT (-b + Discrim) / (2 * a): COLOR 15 ELSE PRINT "Parabola has no real roots." END IF PRINT : PRINT PRINT "Press any key to see a graph of the function... (Or X to Skip)" Z$ = INPUT$(1) IF UCASE$(Z$) = "X" THEN GOTO SkipIt R = INT(ABS(240 / YAxis) / 2) DrawGraph: CLS IF R > 1 THEN FOR X = 320 TO 640 STEP R LINE (X, 0)-(X, 480), 8 NEXT FOR X = 320 TO 0 STEP -R LINE (X, 0)-(X, 480), 8 NEXT FOR Y = 240 TO 480 STEP R LINE (0, Y)-(640, Y), 8 NEXT FOR Y = 240 TO 0 STEP -R LINE (0, Y)-(640, Y), 8 NEXT END IF LINE (320, 0)-(320, 480), 7 LINE (0, 240)-(640, 240), 7 LOCATE 28, 1: COLOR 7: PRINT "Scale = "; R; ": 1" LINE (320 + (XAxis * R), 0)-(320 + (XAxis * R), 480), 12 FOR X = -320 / R TO 320 / R STEP 1 / R Y = (a * (X ^ 2)) + (b * X) + (c) X2 = X + 1 / R Y2 = (a * (X2 ^ 2)) + (b * X2) + (c) LINE (320 + (X * R), 240 - (Y * R))-(320 + (X2 * R), 240 - (Y2 * R)), 10 NEXT LOCATE 27, 1: COLOR 15 PRINT "Press Space to Repeat - R to Rescale"; Z$ = INPUT$(1) IF UCASE$(Z$) = "R" THEN LOCATE 28, 1 PRINT "New Scale (?:1) = "; COLOR 14 INPUT "", R IF R < 5 THEN R = 5 GOTO DrawGraph END IF QuitIt: IF Z$ = CHR$(32) THEN RUN ELSE SYSTEM SkipIt: COLOR 15 PRINT : PRINT PRINT "Press Space to Repeat" GOTO QuitIt