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.