График функции - Pascal ABC (12786)
Формулировка задачи:
Здравствуйте!
Условие задачи:
Напишите программу, постройте и распечатайте график: с шагом 0,05 на интервале [-7, 7].Решение задачи: «График функции»
textual
Листинг программы
- uses graphABC;
- function F(x:real):real;
- begin
- F:=8*x*sin(x*x)/(x-5);
- end;
- var xn,xk,x,mx,my,dx:real;
- x0,y0,i,nx,nmn,nmx:integer;
- begin
- //интервал
- xn:=-7;
- xk:=7;
- //графическое окно
- setwindowsize(600,600);
- centerwindow;
- //начало координат
- x0:=windowwidth div 2;
- y0:=windowheight div 2;
- //масштабы
- mx:=(x0-30)/xk;{масштаб по Х}
- my:=(y0-20)/50;{по У}
- //координатная сетка
- for i:=1 to 7 do
- begin
- 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);
- line(x0-3,y0-round(i*my*10),x0+3,y0-round(i*my*10));
- line(x0-3,y0+round(i*my*10),x0+3,y0+round(i*my*10));
- textout(x0+round(i*mx),y0+10,inttostr(i));
- textout(x0-round(i*mx),y0+10,inttostr(-i));
- textout(x0-20,y0-round(i*my*10),inttostr(i*10));
- textout(x0-25,y0+round(i*my*10),inttostr(-i*10));
- end;
- line(0,y0,windowwidth,y0);{оси}
- line(windowwidth,y0,windowwidth-10,y0+5);
- line(windowwidth,y0,windowwidth-10,y0-5);
- line(x0,0,X0,windowheight);
- line(x0,0,x0-5,10);
- line(x0,0,x0+5,10);
- textout(x0+5,y0+10,'0');
- textout(windowwidth-10,y0-20,'X');
- textout(x0+10,0, 'Y');
- //график
- setpencolor(clBlue);
- setpenwidth(2);
- dx:=0.1;
- //левая ветвь при x<5
- x:=xn;
- while x<5 do
- begin
- if x=xn then moveto(x0+round(x*mx),y0-round(F(x)*my))
- else lineto(x0+round(x*mx),y0-round(F(x)*my));
- x:=x+dx;
- end;
- //правая ветвь при x>5
- x:=xk;
- while x>5 do
- begin
- if x=xk then moveto(x0+round(x*mx),y0-round(F(x)*my))
- else lineto(x0+round(x*mx),y0-round(F(x)*my));
- x:=x-dx;
- end;
- setfontsize(10);
- setfontcolor(clBlue);
- setfontsize(12);
- textout(20,20,'y=8xsin(x^2)/(x-5)');
- textout(20,40,'интервал [-7;7]');
- end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д