program joonis;
uses graph;
var
exmin, exmax, eymin, eymax: integer; {ekraani koordinaadid}
ex, ey, vanaex, vanaey: integer;
xmin, xmax, ymin, ymax, x, y: real; {punkt tasandil}
koefitsentx, koefitsenty: real;
samm: real;
i: integer;
s: string;
{$I graafika.pas}
procedure alusta;
begin
exmin:=50; exmax:=getmaxx-50;
eymin:=50; eymax:=getmaxy-50;
koefitsentx:=(exmax-exmin)/(xmax-xmin);
koefitsenty:=(eymax-eymin)/(ymax-ymin);
end;
function xekraanil(xgraafikul: real):integer;
begin
xekraanil:=round(exmin+(xgraafikul-xmin)*koefitsentx);
end;
function yekraanil(ygraafikul: real):integer;
begin
yekraanil:=round(eymax-(ygraafikul-ymin)*koefitsenty);
end;
function arvutay(kx: real):real;
begin
arvutay:=kx*kx*kx-4*kx*kx;
end;
procedure joon;
begin
line(vanaex, vanaey, ex, ey);
vanaex:=ex; vanaey:=ey;
end;
procedure yminmax;
begin
x:=xmin;
ymin:=arvutay(x);
ymax:=ymin;
samm:=(xmax-xmin)/300;
for i:=1 to 300 do begin
x:=x+samm;
y:=arvutay(x);
if y&rt;ymax then ymax:=y
else if y<ymin then ymin:=y;
end;
end;
procedure teljed;
begin
settextjustify(2, 2);
str(ymax:2:1, s);
outtextxy(exmin, eymin, s);
str((ymax+ymin)/2:2:1, s);
outtextxy(exmin, round((eymax+eymin)/2), s);
str(ymin:2:1, s);
outtextxy(exmin, eymax, s);
settextstyle(0, 1, 0);
str(xmin:2:1, s);
outtextxy(exmin, eymax+10, s);
str((xmin+xmax)/2:2:1, s);
outtextxy(round((exmin+exmax)/2), eymax, s);
str(xmax:2:1, s);
outtextxy(exmax, eymax, s);
end;
begin
KaivitaGraafika;
xmin:=-2; xmax:=5;
yminmax;
alusta;
teljed;
x:=xmin;
y:=arvutay(x);
samm:=(xmax-xmin)/300;
vanaex:=xekraanil(x);
vanaey:=yekraanil(y);
for i:=1 to 300 do begin
x:=x+samm;
y:=arvutay(x);
ex:=xekraanil(x);
ey:=yekraanil(y);
joon;
end;
readln;
CloseGraph;
end.