program zadacha; uses crt, graph; var center_x,center_y,width_x,height_y:integer; graphdriver,graphmode,errorcode:integer; procedure initgrp; begin graphdriver:=detect; initgraph(graphdriver,graphmode,'C:\egavga.bgi'); errorcode:=graphresult; if errorcode<>grok then begin writeln('graphics error: ',grapherrormsg(errorcode)); closegraph; halt(1); end; end; const td=2*pi/200; var x,y,a,b,c,d,t,y_scale:real; xx,yy:integer; sa,sb,sc,sd:string; begin clrscr; write('enter a>0'); readln(a); write('enter b>0'); readln(b); write('enter c>0'); readln(c); write('enter d>0'); readln(d); initgrp; center_x:=getmaxx div 2; center_y:=getmaxx div 2; width_x:=(getmaxx div 2)-50; height_y:=(getmaxx div 2)-50; y_scale:=height_y/1; setcolor(white); line(center_x+width_x,center_y,center_x-width_x,center_y); line(center_x,0,center_x,center_y+height_y); setcolor(red); t:=0; repeat x:=sin(a*t + b) * cos(c*t); y:=sin(a*t + b) * sin(d*t); xx:=trunc(center_x + x*width_x); yy:=trunc(center_y - y*y_scale); if t=0 then moveto(xx,yy) else lineto(xx,yy); t:=t+td; until t>2*pi; str(a:2:2,sa); str(b:2:2,sb); str(c:2:2,sc); str(d:2:2,sd); yy:=center_y+height_y+10; outtextxy(0,yy,'x=sin('+sa+'*t+'+sb+')*sin('+sd+'*t)'); readln; closegraph; end.