Contributor: RODRIGO MOREIRA SILVEIRA { Calculate and make the graphic of an quadratic equation type axý + bx + c Written By: Rodrigo Moreira Silveira - ZîU$ - BRASIL You can Find me at: InterNet : arlindo@solar.com.br Adress : SQS 113 Bl "G" Apto 102 Bras¡lia - DF - BRASIL Cep : 70.376-070 } Program Equation; uses crt,graph; var x1,x2,a,b,c : Real; grDriver,grMode: integer; Procedure Drawon(xt,yt:real); Begin PutPixel(trunc(320-(10*xt)),trunc(240-(10*yt)),Yellow); end; Procedure grafico; var x0,y0,x,y : real; begin x := -100; { Calculates x from -100 to 100 (*) } drawon(c,0); repeat x := x + 0.01; { Precision } y := (a*(x*x)) + (b*x) + (c); drawon(x,y); until x >= 100 { Calculates "x" from -100 to 100 (*) } end; Procedure Calc; var Delta : Real; Tmp : String[10]; Begin SetColor(White); if a <> 0 then begin Delta := (b*b) - (4*a*c); if Delta >= 0 then begin OutTextXY(0,0,'Delta () ='); Tmp:= ''; str(delta:1:6,Tmp); OutTextXY(100,0,tmp); X1 := (-b) + Sqrt(Delta); X2 := (-b) - Sqrt(Delta); Tmp:= ''; str(x1:1:6,Tmp); OutTextXY(0,10,'x'' ='); OutTextXY(35,10,tmp); Tmp:= ''; str(x2:1:6,Tmp); OutTextXY(0,20,'x'''' ='); OutTextXY(40,20,tmp); end else OutTextXY(0,0,'Delta () < 0'); end else begin if b <> 0 then begin X1 := (c / b); str(x1:1:6,Tmp); OutTextXY(0,0,'x ='); OutTextXY(25,0,tmp); end else OutTextXY(0,0,'Constant Function'); end; end; Procedure DrawCartesian; var i,y : Word; Begin SetColor(LightGray); for i := 1 to 96 do Line(0,i*10,640,i*10); for i := 1 to 129 do Line(i*10,0,i*10,480); SetColor(White); Line(0,240,640,240); Line(320,0,320,480); OutTextXY(0,230,'x'); OutTextXY(310,0,'y'); OutTextXY(310,230,'o'); end; begin TEXTMODE(co80); Writeln('This Prorgam will calculate and make a graphic of an equation axý + bx + c'); WriteLn;WriteLn; Write('Type a Real equivalence to "a" : '); readln(a); Write('Type a Real equivalence to "b" : '); readln(b); Write('Type a Real equivalence to "c" : '); readln(c); grDriver := 9; {VGA} grMode := 2; {VGAHi = 650x480} initgraph(grDriver,grMode,'..\'); DrawCartesian;{Draw The Cartesian} Calc;{Calculates and the roots} grafico;{Calculates x and make the graphic} repeat until keypressed; readkey; textmode(co80);{Returns to TextMode} end.