Devil May Cry Wiki
Advertisement

program Funkcja;

uses Crt, Graph;

var

karta, tryb: smallint; a,b,pixele, fw: real; c,x,y,z: integer; MaxX, MaxY: integer; Zakres:byte;

function f(x:real):real; begin f:= a*x*x + b*x + c; end;

procedure Rysowanie(); begin x:= -MaxX div 2; y:= MaxY div 2 - round(f(x * pixele)); MoveTo(x, y); setcolor(red); for x:= - MaxX div 2 to MaxX div 2 do begin fw:= f(x * pixele); y:= MaxY div 2 - round(fw / pixele); LineTo(x + MaxX div 2, y); delay(5); end; end;

begin begin writeln('Witaj w programie rysujacym wykres funkcji liniowej'); writeln('podaj wspolczynnik a: '); read(a); writeln('podaj wspolczynnik b: '); read(b); writeln('podaj wspolczynnik c: '); read(c);

writeln('Podaj zakres, dla ktorego ma byc narysowany ten uklad.'); writeln('Zostanie on stworzony poprzez stworzenie przedzialu od danej liczby do jej przeciwnosci'); writeln('Przykladowo dla 2, bedzie to przedzial od -2 do 2'); read(Zakres); end;

begin InitGraph(Karta,Tryb,); MaxX:= GetMaxX; MaxY:= GetMaxY; Zakres:= Zakres * 2; pixele:= Zakres / GetMaxX; SetColor(2); end;

begin Line(0, MaxY div 2, MaxX, MaxY div 2); Line(MaxX div 2, 0, MaxX div 2, MaxY); end;

begin SetColor(2); x:=0; z:=zakres *2; while x < z do begin x:=x+1; Line(MaxX div 2 - 10, Round(x / pixele) - (MaxX - MaxY) div 2, MaxX div 2 + 10, Round(x / pixele) - (MaxX - MaxY) div 2); Line(Round(x / pixele), MaxY div 2 - 10, Round(x / pixele), MaxY div 2 + 10); end; end;

Rysowanie;

repeat until keypressed; closegraph; end.

Advertisement