uses crt,graph; var gr,gm,i:integer; scale_x,scale_y:integer; x,y,a:real; function gx(x:real; sx:integer):integer; begin gx:=trunc(sx*x)+(getmaxx div 2); end; function gy(y:real; sy:integer):integer; begin gy:=(getmaxy div 2)-trunc(sy*y); end; procedure astr(t:real; var x,y:real); begin y:=a*cos(t)*sqr(cos(t)); x:=a*sin(t)*sqr(sin(t)); end; var t, step: real; begin clrscr; write('a = '); readln(a); gr := detect; initgraph(gr,gm, ''); scale_x := 10; scale_y := 10; step := 0.005; t := 0; while t <= 2 * pi do begin astr(t, x, y); putpixel(gx(x, scale_x), gy(y, scale_y), blue); t := t + step; end; readkey; closegraph; end.