     Program Parabola;
 uses graphABC;
 const n = 10;
 var
x,y: real;
x0,y0,vsp,i:integer;
s: string;

  begin
x:=-5;
while x < 5 do
begin
y:=-(x*x);
setpixel(trunc(x*30+300),trunc(y*30+300),clblack);
x:=x+0.001;
end;

begin


setwindowsize(600,600);
x0 := 300;
y0 := 300;
line(x0, 0, x0, 600);
line(0, y0, 600, y0);

line(x0, 0, x0 - 10, 15);
line(x0, 0, x0 + 10, 15);
line(600, y0, 600 - 15, y0 + 10);
line(600, y0, 600 - 15, y0 - 10);

vsp := WindowWidth div (2 * (n + 1)); i := 1;
while vsp <= WindowWidth div 2 - 15 do
begin
line(x0 + vsp, y0 - 5, x0 + vsp, y0 + 5);
str(i, s);
TextOut(x0 + vsp - 3, y0 + 7, s);
i := i + 1;
vsp := i * (WindowWidth div (2 * (n + 1)));
end;
vsp := WindowWidth div (2 * (n + 1)); i := 1;
while vsp <= WindowWidth div 2 - 15 do
begin
line(x0 - vsp, y0 - 5, x0 - vsp, y0 + 5);
str(-i, s);
TextOut(x0 - vsp - 7, y0 + 7, s);
i := i + 1;
vsp := i * (WindowWidth div (2 * (n + 1)));
end;
vsp := WindowWidth div (2 * (n + 1)); i := 1;
while vsp <= WindowHeight div 2 do
begin
line(x0 - 5, y0 + vsp, x0 + 5, y0 + vsp);
str(-i, s);
TextOut(x0 + 7, y0 + vsp - 6, s);
i := i + 1;
vsp := i * (WindowWidth div (2 * (n + 1)));
end;
vsp := WindowWidth div (2 * (n + 1)); i := 1;
while vsp <= WindowHeight div 2 - 15 do

begin
line(x0 - 5, y0 - vsp, x0 + 5, y0 - vsp);
str(i, s);
TextOut(x0 + 10, y0 - vsp - 6, s);
i := i + 1;
vsp := i * (WindowWidth div (2 * (n + 1)));
end;

s := 'X';
TextOut(600 - 15, y0 - 27, s);
s := 'Y';
TextOut(x0 - 23, 2, s);
s := '0';
TextOut(x0 + 4, y0 - 16, s);
end;

x:=-11;
while x < 0 do
begin
y:=1/x;
setpixel(trunc((-x)*20+300),trunc(y*100+300),clblack);
x:=x+0.0001;
end;
line(20,248,570,248);
floodfill (298,290,clblack);
floodfill (301,298,clblack);
end.