• Составьте программу, которая строит график зависимости:
    а) y(x)=0.5x *cos 2x на промежутке [-12;12];
    б) y(x)=8 sinx *sin 2x на промежутке [-15;15];

Ответы 1

  • Основа взята на сайте progmatem.ru. К сожалению, автор статьи там не был указан.// PascalABC.NET 3.1, сборка 1204 от 24.03.2016uses graphABC;const  w=1000;  h=600;function f(x:real):=0.5*x*cos(2*x);begin  SetWindowSize(w,h);  // поле для графика в окне  var xLeft:=50;  var yLeft:=50;  var xRight:=w-xLeft;  var yRight:=h-yLeft;  // интервалы по осям  var ax:=-12.0;  var bx:=12.0;  var hx:=1.0;  var ay:=-6.5; // минимум f(x) с запасом  var by:=6.5;  var hy:=0.5;  // масштабы по осям  var mx:=(xRight-xLeft)/(bx-ax);  var my:=(yRight-yLeft)/(by-ay);  // точка начала координат графика  var x0:=xLeft+Trunc(abs(ax)*mx);  var y0:=yRight-Trunc(abs(ay)*my);  // рисование координатных осей  Line(xLeft,y0,xRight+10,y0);  Line(x0,yLeft-10,x0,yRight);  SetFontSize(12); SetFontColor(clBlue);  TextOut(xRight+15,y0-10,'X');  TextOut(x0-4,yLeft-30,'Y');  SetFontSize(8); SetFontColor(clGreen);  // рисование засечек  var s:string;  for var i:=1 to Round((bx-ax)/hx)+1 do begin    var num:=ax+(i-1)*hx;    var x:=xLeft+Trunc(mx*(num-ax));    Line(x,y0-3,x,y0+3);    Str(num,s);    if abs(num)>1E-15 then TextOut(x-TextWidth(s) div 2,y0+10,s)    end;  for var i:=1 to Round((by-ay)/hy)+1 do begin    var num:=ay+(i-1)*hy;    var y:=yRight-Trunc(my*(num-ay));    Line(x0-3,y,x0+3,y);    Str(num,s);    if abs(num)>1E-15 then TextOut(x0+7,y-TextHeight(s) div 2,s)    end;    TextOut(x0-10,y0+10,'0');  // собственно график  var xi:=ax;  while xi<=bx do begin    var yi:=f(xi);    var x:=x0+Round(xi*mx);    var y:=y0-Round(yi*my);    if (y>=yLeft) and (y<=yRight) then SetPixel(x,y,clRed);    xi+=1e-3    endend.*******************************************// PascalABC.NET 3.1, сборка 1204 от 24.03.2016uses graphABC;const  w=1000;  h=600;function f(x:real):=8*sin(x)*sin(2*x);begin  SetWindowSize(w,h);  // поле для графика в окне  var xLeft:=50;  var yLeft:=50;  var xRight:=w-xLeft;  var yRight:=h-yLeft;  // интервалы по осям  var ax:=-15.0;  var bx:=15.0;  var hx:=1.0;  var ay:=-6.5; // минимум f(x) с запасом  var by:=6.5;  var hy:=0.5;  // масштабы по осям  var mx:=(xRight-xLeft)/(bx-ax);  var my:=(yRight-yLeft)/(by-ay);  // точка начала координат графика  var x0:=xLeft+Trunc(abs(ax)*mx);  var y0:=yRight-Trunc(abs(ay)*my);  // рисование координатных осей  Line(xLeft,y0,xRight+10,y0);  Line(x0,yLeft-10,x0,yRight);  SetFontSize(12); SetFontColor(clBlue);  TextOut(xRight+15,y0-10,'X');  TextOut(x0-4,yLeft-30,'Y');  SetFontSize(8); SetFontColor(clGreen);  // рисование засечек  var s:string;  for var i:=1 to Round((bx-ax)/hx)+1 do begin    var num:=ax+(i-1)*hx;    var x:=xLeft+Trunc(mx*(num-ax));    Line(x,y0-3,x,y0+3);    Str(num,s);    if abs(num)>1E-15 then TextOut(x-TextWidth(s) div 2,y0+10,s)    end;  for var i:=1 to Round((by-ay)/hy)+1 do begin    var num:=ay+(i-1)*hy;    var y:=yRight-Trunc(my*(num-ay));    Line(x0-3,y,x0+3,y);    Str(num,s);    if abs(num)>1E-15 then TextOut(x0+7,y-TextHeight(s) div 2,s)    end;    TextOut(x0-10,y0+10,'0');  // собственно график  var xi:=ax;  while xi<=bx do begin    var yi:=f(xi);    var x:=x0+Round(xi*mx);    var y:=y0-Round(yi*my);    if (y>=yLeft) and (y<=yRight) then SetPixel(x,y,clRed);    xi+=1e-3    endend.
    answer img
    • Автор:

      anton8tgg
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years