uses graph, crt;
var xi,yi,ri,i,n:integer;
procedure init;
var gd,gm:integer;
begin
gd:=detect;
initgraph(gd,gm,'d:\setup\tp\bgi');
if graphresult <> grok then
begin
writeln(' loi khoi tao do hoa, ktra lai duong dan!');
halt;
end;
end;
{*****DUNG HINH XEM KET QUA*********}
procedure dunghinh;
begin
repeat until keypressed;
end;
{*****DONG MAN HINH*******}
procedure donghinh;
begin
closegraph;
end;
{******TO MAU*******}
procedure tomau(x,y,xt,yt:integer);
begin
setcolor(blue);
line(-x+xt+1,y+yt,x+xt-1,y+yt);
line(-x+xt+1,-y+yt,x+xt-1,-y+yt);
line(-y+xt+1,x+yt,y+xt-1,x+yt);
line(-y+xt+1,-x+yt,y+xt-1,-x+yt);
end;
{***T.TOAN DUONG TRON***}
procedure put8pixel(x,y,xt,yt,m:integer);
begin
putpixel(x+xt,y+yt,m);
putpixel(x+xt,-y+yt,m);
putpixel(-x+xt,y+yt,m);
putpixel(-x+xt,-y+yt,m);
putpixel(y+xt,x+yt,m);
putpixel(y+xt,-x+yt,m);
putpixel(-y+xt,x+yt,m);
putpixel(-y+xt,-x+yt,m)
end;
procedure M(xtam,ytam,r,m:integer);
var x,y:integer;
p:real;
begin
x:=0; y:=r;
p:=1.25-r;
put8pixel(x,y,xtam,ytam,m);
tomau(x,y,xtam,ytam);
while(x<y) do
begin
if p<0 then p:=p+2*x+3
else
begin
p:=p+2*(x-y)+5;
y:=y-1;
end;
x:=x+1;
put8pixel(x,y,xtam,ytam,m);
tomau(x,y,xtam,ytam);
end;
putpixel(xtam,ytam,m-1);
setcolor(white);
outtextxy(xtam+10,ytam,'I');
end;
{*******NHAP TOA DO**********}
procedure nhap(var xtam,ytam,r:integer);
begin
writeln('nhap thong so duong tron');
write('I(x,y)=');
readln(xtam,ytam);
write('nhap ban kinh r=');
readln(r);
end;
{******CHUONG TRINH CHINH********}
begin
nhap(xi,yi,ri);
init;
M(xi,yi,ri,red);
dunghinh;
donghinh;;
end.