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

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

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

помогите пожалуйста сделать график функции у=(корень х)+х2( х в квадрате)

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

textual
Листинг программы
  1. uses
  2.   Graph;
  3.  
  4. type
  5.   tFunc= function(x: double): double;
  6.  
  7. var
  8.   gd,gm,i,j: integer;
  9.   i1,i2,j1,j2: integer;
  10.   x1,x2,y1,y2: double;
  11.  
  12.  
  13. function WinX(x: double): integer;
  14. begin
  15.   WinX:= Round((x-x1)/(x2-x1)*(i2-i1)) + i1
  16. end;
  17.  
  18.  
  19. function WinY(y: double): integer;
  20. begin
  21.   WinY:= j2-Round((y-y1)/(y2-y1)*(j2-j1))
  22. end;
  23.  
  24.  
  25. procedure WinSet(u1,v1,u2,v2: double; a1,b1,a2,b2: integer);
  26. begin
  27.   if a1<0 then i1:= GetMaxX+a1 else i1:= a1;
  28.   if b1<0 then j1:= GetMaxY+b1 else j1:= b1;
  29.   if a2<0 then i2:= GetMaxX+a2 else i2:= a2;
  30.   if b2<0 then j2:= GetMaxY+b2 else j2:= b2;
  31.   x1:= u1;
  32.   y1:= v1;
  33.   if u2<=u1 then x2:= x1+(v2-v1)/(j2-j1)*(i2-i1) else x2:= u2;
  34.   if v2<=v1 then y2:= y1+(u2-u1)/(i2-i1)*(j2-j1) else y2:= v2
  35. end;
  36.  
  37.  
  38. procedure WinFrame(col: integer);
  39. begin
  40.   SetColor(col);
  41.   Rectangle(i1,j1,i2,j2)
  42. end;
  43.  
  44.  
  45. procedure WinAxisX(y,d: double; col,mark: word);
  46. var
  47.   x: double;
  48.   s: string;
  49. begin
  50.   SetColor(col);
  51.   SetLineStyle(SolidLn,0,3);
  52.   Line(i1,WinY(y),i2,WinY(y));
  53.   x:= Trunc(x1/d)*d;
  54.   if x1>0 then x:=x+d;
  55.   SetLineStyle(SolidLn,0,1);
  56.   while x<x2 do begin
  57.     x:=x+d;
  58.     if abs(x)>1e-16 then begin
  59.       Line(WinX(x),WinY(y)+mark,WinX(x),WinY(y)-mark);
  60.       Str(x:0:1,s);
  61.       OutTextXY(WinX(x)-TextWidth(s) div 2,WinY(y)+mark*2,s)
  62.     end
  63.   end;
  64. end;
  65.  
  66.  
  67. procedure WinAxisY(x,d: double; col,mark: word);
  68. var
  69.   y: double;
  70.   s: string;
  71. begin
  72.   SetColor(col);
  73.   SetLineStyle(SolidLn,0,3);
  74.   Line(WinX(x),j1,WinX(x),j2);
  75.   y:= Trunc(y1/d)*d;
  76.   if y1>0 then y:=y+d;
  77.   SetLineStyle(SolidLn,0,1);
  78.   while y<y2 do begin
  79.     y:=y+d;
  80.     if abs(y)>1e-16 then begin
  81.       Line(WinX(x)+mark,WinY(y),WinX(x)-mark,WinY(y));
  82.       Str(y:0:1,s);
  83.       OutTextXY(WinX(x)-TextWidth(s)-mark*2,WinY(y)-TextHeight(s) div 2,s)
  84.     end
  85.   end;
  86. end;
  87.  
  88.  
  89. procedure WinPlot(f: tFunc; x1,x2,d: double);
  90. var
  91.   x: double;
  92. begin
  93.   MoveTo(WinX(x1),WinY(f(x1)));
  94.   x:= x1;
  95.   while x<x2 do begin
  96.     LineTo(WinX(x),WinY(f(x)));
  97.     x:= x+d
  98.   end;
  99.   MoveTo(WinX(x2),WinY(f(x2)))
  100. end;
  101.  
  102. { тут реализуете свою функцию }
  103. function MyFunc(x: double): double;
  104. begin
  105.   MyFunc:= Sqrt(x) + Sqr(x)
  106. end;
  107.  
  108.  
  109. begin
  110.   gd:= Detect;
  111.   InitGraph(gd,gm,'');
  112.   WinSet(-1,-1,10,-1,20,20,GetMaxX div 2,-20);
  113.   WinFrame(DarkGray);
  114.   WinAxisX(0,1,LightGray,5);
  115.   WinAxisY(0,1,LightGray,5);
  116.  
  117.   SetLineStyle(SolidLn,0,Yellow);
  118.   WinPlot(@MyFunc,0,x2,0.01);
  119.  
  120.   readln;
  121.   CloseGraph
  122. end.

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

В данном коде используется библиотека Graph, которая позволяет создавать графики функций. Переменные и функции объявлены следующим образом:

  • gd, gm, i, j: integer;
  • i1, i2, j1, j2: integer;
  • x1, x2, y1, y2: double;
  • tFunc - тип функции, которая будет строиться;
  • MyFunc - функция, которую мы будем использовать для построения графика;
  • WinX, WinY, WinSet, WinFrame, WinAxisX, WinAxisY, WinPlot - процедуры, которые отвечают за построение осей и графика функции. В функции WinSet устанавливаются начальные значения координат для осей x и y. Затем в функциях WinAxisX и WinAxisY строятся оси x и y соответственно. В функции WinPlot строится график функции. Функция MyFunc используется для вычисления значения функции в точке x. В конце программы закрывается графический редактор.

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


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

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

15   голосов , оценка 3.667 из 5

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

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

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