Вывести в координатных осях график, заданный функцией - Turbo Pascal

Узнай цену своей работы

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

Вывести в координатных осях график, заданный функцией y(t)=2sin(4t)+5e^-2t, 0 <= t <= 2π

Решение задачи: «Вывести в координатных осях график, заданный функцией»

textual
Листинг программы
uses graph;
function F(t:real):real;
begin
F:=2*sin(4*t)+5*exp(-2*t);
end;
var xn,xk,max,min,x,y,mx,my,dx:real;
    x0,y0,i,px,py:integer;
    s:string;
begin
x0:=0;
initgraph(x0,y0,'');
x0:=40;{слева}
y0:=getmaxY div 2;{центр}
xn:=0;xk:=2*pi;{интервал по Х}
mx:=(getmaxX-2*x0)/(xk-xn);{масштаб по Х}
{найдем максимум и минимум для масштаба по У}
max:=F(xn);min:=max;
x:=xn;
while x<=xk do
 begin
  x:=x+0.01;
  if F(x)>max then max:=F(x)
  else if F(x)<min then min:=F(x);
 end;
if max>abs(min) then my:=(y0-20)/max{по У}
else my:=(y0-20)/abs(min);
setbkcolor(15);{цвет фона}
setcolor(8);{цвет линий}
line(0,y0,getmaxX,y0);{оси}
line(x0,0,X0,getmaxY);
for i:=1 to round(xk-xn)+1 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);
    str(i,s);
    {подпись оси У}
    outtextXY(x0-20,y0+round(i*my),'-'+s);{соответственно засечкам}
    outtextXY(x0-15,y0-round(i*my),s);
    {подпись оси Х}
    outtextXY(x0+round(i*mx),y0+10,s);
    outtextXY(x0-round(i*mx),y0+10,'-'+s);
  end;
{центр}
outtextXY(x0+5,y0+10,'0');
{подписи концов осей}
outtextXY(getmaxX-10,y0-10,'X');
outtextXY(x0-10,10, 'Y');
setcolor(8);
{график}
x:=xn;
dx:=0.001;
while x<=xk do
   begin
     x:=x+dx; {наращиваем х}
     px:=x0+round(x*mx); {изменение по оси Х}
     y:=F(x); {график в реальных координатах}
     py:=y0-round(y*my);{в экранных}
     putpixel(px,py,8);
   end;
readln
end.

Объяснение кода листинга программы

  1. Объявлены переменные и функции:
    • xn, xk, max, min, x, y, mx, my, dx (девять переменных)
    • F (функция)
  2. Инициализированы переменные:
    • x0, y0 (координаты начала осей)
    • xn, xk (начальное и конечное значение переменной x)
    • mx (масштаб по оси x)
    • my (масштаб по оси y)
    • dx (шаг по x)
  3. Найдены максимальное и минимальное значение функции F в интервале от xn до xk.
  4. Вычислены координаты осей Y и X.
  5. Засечки на оси Y (y0-round(imy)) и на оси X (x0-round(imx)).
  6. Подписи оси Y (s) выводятся на уровне каждой засечки.
  7. Подписи оси X (s) выводятся на уровне каждой засечки.
  8. Выводится точка (x0+5,y0+10) в центре графика.
  9. Выводятся подписи X и Y на концах осей.
  10. График выводится путем заполнения пикселей в пределах от xn до xk с шагом dx.
  11. Цвет фона установлен в 15, цвет линий - в 8.
  12. Оси и засечки отображаются линиями.
  13. Код завершается после чтения строки.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы