uses graph;
var
x0, y0, r, d: integer;
procedure Graf(a, r, cx, cy, cv: integer);
var
dx, dy, x, y: integer;
t: real;
begin
t := 0; { начальный угол рисования графика }
{ координаты точек }
x := cx + round(r * (1 + a) * cos(t));
y := cy - round(r * (1 - a) * sin(t));
{ становимся в первую точку }
moveto(x, y);
while t <= 2 * pi do { делаем полный оборот }
begin
{ вычисляем координаты остальных точек }
x := cx + round(r * (a + 1) * cos(t));
y := cy - round(r * (a - 1) * sin(t));
setcolor(cv); { выбираем цвет }
lineto(x, y); { рисуем линию }
t := t + 0.001; { наращиваем угол }
end;
end;
begin
r := 0;
{ переход в графический режим }
initgraph(r, d, '');
{ центр экрана }
x0 := getmaxX div 2;
y0 := getmaxY div 2;
r := 20;
setbkcolor(15);
setcolor(8);
outtextXY(x0 - 100, 20, 'Grafiki functii v parametricheskoj forme');
outtextXY(x0 - 40, 35, 'X(t)=(1+A)cos(t)');
outtextXY(x0 - 40, 50, 'Y(t)=(1-A)sin(t)');
outtextXY(x0 - 40, 65, 't=0..2pi');
{ рисуем 4 графика с заданными параметрами }
setcolor(1);
outtextXY(x0 - 165, y0 - 2 * r - 100, 'A=-2');
Graf(-2, r, x0 - 150, y0 - 60, 1);
setcolor(2);
outtextXY(x0 - 165, y0 + 2 * r, 'A=-1');
Graf(-1, r, x0 - 150, y0 + 120, 2);
setcolor(9);
outtextXY(x0 + 130, y0 - 2 * r - 100, 'A=1');
Graf(1, r, x0 + 150, y0 - 60, 9);
setcolor(4);
outtextXY(x0 + 130, y0 + 2 * r, 'A=4');
Graf(4, r, x0 + 150, y0 + 120, 4);
readln
end.