Нарисовать график тангенса без асимптот - PascalABC.NET

Формулировка задачи:

помогите пожалуйста. нужно сделать так чтобы график был без асимптот


textual

Код к задаче: «Нарисовать график тангенса без асимптот - PascalABC.NET»

uses graphABC;
function F(x:real):real;
begin
F:=tan(x);
end;
var xn,xk,mx,my,dx:real;
    x:real;
    x0,y0,i:integer;
begin
xn:=-2*pi;xk:=2*pi;//интервал по Х
x0:=windowwidth div 2;
mx:=(x0-30)/xk;//масштаб по Х
y0:=windowheight div 2;
my:=(y0-20)/10;//по У
line(0,y0,windowwidth,y0);//оси
line(x0,0,x0,windowheight);
for i:=1 to 10 do//максимальное количество засечек в одну сторону
  begin
   line(x0-3,y0-round(i*my),x0+3,y0-round(i*my));//засечки на оси У
   line(x0-3,y0+round(i*my),x0+3,y0+round(i*my));
   line(x0+round(i*mx),y0-3,x0+round(i*mx),Y0+3);//засечки на оси Х
   line(x0-round(i*mx),y0-3,x0-round(i*mx),Y0+3);
   {подпись оси У}
   textout(x0-35,y0-round(i*my),inttostr(i));//соответственно засечкам
   textout(x0-35,y0+round(i*my),inttostr(-i));
   {подпись оси Х}
   textout(x0+round(i*mx),y0+10,inttostr(i));
   textout(x0-round(i*mx),y0+10,inttostr(-i));
  end;
{центр}
textout(x0+5,y0+10,'0');
{подписи концов осей}
textout(windowwidth-10,y0-10,'X');
textout(x0+5,10, 'Y');
//график
x:=xn;
dx:=0.001;
while x<=xk do
 begin
  if abs(cos(x))>0.1 then
  setpixel(x0+round(x*mx),y0-round(F(x)*my),clGreen);
  x:=x+dx;
 end;
{название}
textout(x0+50,20,'График функции y=tgx');
textout(x0+50,40,'на интервале [-2pi;2pi]');
end.
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.


СДЕЛАЙТЕ РЕПОСТ

6   голосов, оценка 4.333 из 5

Источник