Devil May Cry Wiki
Advertisement

Program funkcja;


uses Crt, Graph;


var


sKarta, sTryb: smallint;


A, R, C, Pixel, Fx: real;


nX, nY, nPomoc: integer;


nMaxX, nMaxY: integer;


nZakres:byte;


function FunkcjaKwadratowa(nX:real):real;


begin


FunkcjaKwadratowa:= A * nX * nX + R * nX + C;


end;


procedure Osie();


begin


Line(0, nMaxY div 2, nMaxX, nMaxY div 2);


Line(nMaxX div 2, 0, nMaxX div 2, nMaxY);


end;


procedure Grafika();


begin


InitGraph(sKarta,sTryb,);


nMaxX:= GetMaxX;


nMaxY:= GetMaxY;


nZakres:= nZakres * 2;


Pixel:= nZakres / GetMaxX;


SetColor(random(15));


end;


procedure WczytajWspolczynniki();


begin


clrscr;


writeln('Program rysujacy funkcje kwadratowa.');


writeln('Najpierw podaj wspolczynnik a: ');


read(A);


if A = 0 then


begin


writeln('Funkcja przeksztalcono na funkcje liniowa (A=0).');


delay(200);


end;


writeln('Teraz podaj wspolczynnik b: ');


read(R);


if (R = 0) and (A = 0) then


begin


writeln('Funkcja będzie funkcja stala (A i B jest rowne 0).');


delay(200);


end;


writeln('Podaj c: ');


read(C);


end;


procedure Zakres();


begin


writeln('Podaj zakres');


read(nZakres);


end;


procedure Podzial();


begin


SetColor(1);


nX:=0;


nPomoc:= nZakres * 2;


while nX < nPomoc do


begin


nX:=nX+1;


Line(nMaxX div 2 - 5, Round(nX / Pixel) - (nMaxX - nMaxY) div 2, nMaxX div 2 + 5, Round(nX / Pixel) - (nMaxX - nMaxY) div 2);


Line(Round(nX / Pixel), nMaxY div 2 - 5, Round(nX / Pixel), nMaxY div 2 + 5);


end;


end;


procedure RysujFunkcje();


begin


nX:= - nMaxX div 2;


nY:= nMaxY div 2 - round(FunkcjaKwadratowa(nX * Pixel));


MoveTo(nX, nY);


setcolor(red);


for nX:= - nMaxX div 2 to nMaxX div 2 do


begin


Fx:= FunkcjaKwadratowa(nX * Pixel);


nY:= nMaxY div 2 - round(Fx / Pixel);


LineTo(nX + nMaxX div 2, nY);


end;


end;


Begin


WczytajWspolczynniki;


Zakres;


Grafika;


Osie;


Podzial;


RysujFunkcje;


repeat until keypressed;


closegraph;


End.

Advertisement