Program circle;
uses crt, graph;
var graphdriver,graphmode: integer;
yy,x0,y0,x,a,b: integer;
y,xx: real;
Begin
graphdriver:=detect; clrscr;
write('Введите координаты центра эллипса : '); readln(x0,y0);
write('Введите a,b : '); readln(a,b);
initgraph(graphmode,graphdriver,'f:\bp\BGI'); cleardevice;
for x:=0 to a do
begin
y:=round(sqrt(1-sqr(x)/sqr(a))*b);
putpixel(x+x0,y+y0,7); putpixel(x+x0,-y+y0,7);
putpixel(-x+x0,y+y0,7); putpixel(-x+x0,-y+y0,7);
end;
for yy:=0 to b do
begin
xx:=round(sqrt(1-sqr(yy)/sqr(b))*a);
putpixel(xx+x0,yy+y0,7); putpixel(xx+x0,-yy+y0,7);
putpixel(-xx+x0,yy+y0,7); putpixel(-xx+x0,-yy+y0,7);
end;
readkey;
closegraph;
End.
Вопрос : можно ли её как-нибудь переделать не используя посторонних функций округления в формуле, наподобие round и trunc. Если можно, то каким образом ?