Построить график функции - Turbo Pascal (29376)

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

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

Построить график функции

Решение задачи: «Построить график функции»

textual
Листинг программы
  1. uses graph;
  2. function F(x:real):real;
  3. var as:real;
  4. begin
  5. if x<-1 then F:=1-cos(5*x)
  6. else if x>0.4 then F:=2*x+ln(x+1/x)
  7. else
  8.  begin
  9.   if x=-1 then as:=-pi/2
  10.   else as:=arctan(x/(1-x*x));
  11.   F:=2*x+as-2;
  12.  end;
  13. end;
  14.  
  15. var a,b,mx,my,max:real;
  16.     x:real;
  17.     x0,y0,i:integer;
  18.     s:string;
  19. begin
  20. x0:=0;
  21. initgraph(x0,y0,'');{инициализация графического режима}
  22. a:=-2;
  23. b:=2;{интервал по Х}
  24. x0:=getmaxX div 2;{начало координат по Х}
  25. mx:=(x0-30)/b;{масштаб по Х}
  26. x:=a;
  27. max:=abs(F(x));
  28. while x<=b do
  29.  begin
  30.   if abs(F(x))>max then max:=abs(F(x));
  31.   x:=x+0.1;
  32.  end;
  33. y0:=getmaxY div 2;{начало координат по Y}
  34. my:=(y0-40)/max;
  35. line(0,y0,getmaxX,y0);{оси}
  36. line(x0,0,x0,getmaxY);
  37. for i:=1 to trunc(max+1) do{максимальное количество засечек в одну сторону}
  38.  begin
  39.   line(x0-3,y0-round(i*my),x0+3,y0-round(i*my));{засечки на оси У}
  40.   line(x0-3,y0+round(i*my),x0+3,y0+round(i*my));
  41.   {подпись оси У}
  42.   str(i,s);
  43.   outtextXY(x0-15,y0-round(i*my),s);{соответственно засечкам}
  44.   outtextXY(x0-20,y0+round(i*my),'-'+s);
  45.   line(x0+round(i*mx/2),y0-3,x0+round(i*mx/2),y0+3); {засечки на оси Х}
  46.   line(x0-round(i*mx/2),y0-3,x0-round(i*mx/2),y0+3);
  47.   {подпись оси Х}
  48.   str(i/2:0:1,s);
  49.   outtextXY(x0+round(i*mx/2)+5,y0+10,s);
  50.   outtextXY(x0-round(i*mx/2)+5,y0+10,'-'+s);
  51.  end;
  52. {центр}
  53. outtextXY(x0-15,y0+10,'0');
  54. {подписи концов осей}
  55. outtextXY(getmaxX-10,y0-10,'X');
  56. outtextXY(x0+5,10, 'Y');
  57. {график}
  58. x:=a;
  59. while x<=b do
  60.  begin
  61.   putpixel(x0+round(x*mx),y0-round(F(x)*my),14);
  62.   x:=x+0.0001;
  63.  end;
  64. {ассимптоты}
  65. setcolor(10);
  66. setlinestyle(1,0,1);
  67. line(x0+round(-1*mx),0,x0+round(-1*mx),getmaxY);
  68. line(x0+round(0.4*mx),0,x0+round(0.4*mx),getmaxY);
  69. readln
  70. end.

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

  1. В начале кода подключается библиотека graph, которая, вероятно, содержит функции для работы с графиками.
  2. Затем определяется функция F(x), которая представляет собой функцию, график которой нужно построить. Внутри функции проверяются различные условия, определяющие форму функции.
  3. Далее объявляются переменные a, b, mx, my, max, x0, y0, i и s. Переменная x0 инициализируется значением 0, а переменные x0 и y0 инициализируются функцией initgraph.
  4. Затем устанавливаются начальные значения для масштабов по X и Y, а также задаются начальные координаты для осей X и Y.
  5. Далее идет цикл while, который выполняется до тех пор, пока значение x не превысит значение b. Внутри цикла строятся засечки на оси X и Y, а также вычисляются координаты центра и подписываются концы осей.
  6. После этого строятся асимптоты для оси X.
  7. Затем устанавливается цвет шрифта и стиль линии для отображения асимптот.
  8. В конце кода считывается значение из переменной s и выводится на экран.

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


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

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

13   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут