Найти область определения функции D(f), ее нули экстремумы и множество значений W(f) построить график функций - Pascal

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

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

Найти область определения функции D(f), ее нули экстремумы и множество значений W(f) построить график функций нарисовав и разместив оси координат y=x^3-3x^2+2 (Pascal abc)

Решение задачи: «Найти область определения функции D(f), ее нули экстремумы и множество значений W(f) построить график функций»

textual
Листинг программы
  1. uses graphABC;
  2. function F(x:real):real;
  3. begin
  4. F:=power(x,3)-3*power(x,2)+2;
  5. end;
  6. var xn,xk,x,mx,my,dx,xmn,min,xmx,max:real;
  7.     k:array[1..3] of real;
  8.     x0,y0,i,n:integer;
  9.     s1,s2:string;
  10. begin
  11. //интервал
  12. xn:=-2;
  13. xk:=4;
  14. //графическое окно
  15. setwindowsize(600,600);
  16. centerwindow;
  17. //начало координат
  18. x0:=windowwidth div 3;
  19. y0:=round(windowheight*F(xk)/(F(xk)-F(xn)));
  20. //масштабы
  21. mx:=(x0-30)/-xn;{масштаб по Х}
  22. my:=(y0-20)/F(xk);{по У}
  23. //координатная сетка
  24. for i:=1 to trunc(F(xk))+1 do
  25.  begin
  26.   line(x0+round(i*mx),y0-3,x0+round(i*mx),y0+3);
  27.   line(x0-round(i*mx),y0-3,x0-round(i*mx),y0+3);
  28.   line(x0-3,y0-round(i*my),x0+3,y0-round(i*my));
  29.   line(x0-3,y0+round(i*my),x0+3,y0+round(i*my));
  30.   textout(x0+round(i*mx),y0+10,inttostr(i));
  31.   textout(x0-round(i*mx),y0+10,inttostr(-i));
  32.   if i mod 2=0 then
  33.    begin
  34.     textout(x0-20,y0-round(i*my),inttostr(i));
  35.     textout(x0-25,y0+round(i*my),inttostr(-i));
  36.    end;
  37.  end;
  38. line(0,y0,windowwidth,y0);{оси}
  39. line(windowwidth,y0,windowwidth-10,y0+5);
  40. line(windowwidth,y0,windowwidth-10,y0-5);
  41. line(x0,0,X0,windowheight);
  42. line(x0,0,x0-5,10);
  43. line(x0,0,x0+5,10);
  44. textout(x0+5,y0+10,'0');
  45. textout(windowwidth-10,y0-20,'X');
  46. textout(x0+10,0, 'Y');
  47. //график
  48. n:=0;
  49. x:=xn;
  50. setpencolor(clBlue);
  51. setpenwidth(2);
  52. dx:=0.01;
  53. while x<=xk do
  54.  begin
  55.   if x=xn then moveto(x0+round(x*mx),y0-round(F(x)*my))
  56.   else lineto(x0+round(x*mx),y0-round(F(x)*my));
  57.   if (F(x-dx)>F(x))and(F(x+dx)>F(x))then
  58.    begin
  59.     xmn:=x;
  60.     min:=F(x);
  61.    end;
  62.   if (F(x-dx)<F(x))and(F(x+dx)<F(x))then
  63.    begin
  64.     xmx:=x;
  65.     max:=F(x);
  66.    end;
  67.    if abs(F(x))<dx*2 then
  68.     begin
  69.      inc(n);
  70.      k[n]:=x;
  71.     end;
  72.   x:=x+dx;
  73.  end;
  74. setpencolor(clRed);
  75. setbrushcolor(clRed);
  76. circle(x0+round(xmx*mx),y0-round(max*my),3);
  77. setpencolor(clLime);
  78. setbrushcolor(clLime);
  79. circle(x0+round(xmn*mx),y0-round(min*my),3);
  80. setpencolor(clBlack);
  81. setbrushcolor(clBlack);
  82. for i:=1 to 3 do
  83. circle(x0+round(k[i]*mx),y0,2);
  84. setbrushstyle(bsClear);
  85. setfontsize(10);
  86. setfontcolor(clBlue);
  87. textout(x0+50,0,'График функции y=x^3-3x^2+2');
  88. textout(x0+50,20,'на интервале [-2;4]');
  89. textout(x0+50,40,'Область определения D(f)=R');
  90. str(F(xn):0:1,s1);
  91. str(F(xk):0:1,s2);
  92. textout(x0+50,60,'Множество значений W(f)= ['+s1+';'+s2+']');
  93. str(xmn:0:1,s1);
  94. str(min:0:1,s2);
  95. setfontcolor(clLime);
  96. textout(x0+50,80,'Локальный минимум: x='+s1+' F(x)='+s2);
  97. str(xmx:0:1,s1);
  98. str(max:0:1,s2);
  99. setfontcolor(clRed);
  100. textout(x0+50,100,'Локальный максимум: x='+s1+' F(x)='+s2);
  101. setfontcolor(clBlack);
  102. textout(x0+50,120,'Нули функции:');
  103. s2:='';
  104. for i:=1 to n do
  105.  begin
  106.   str(k[i]:0:3,s1);
  107.   s2:=s2+'x'+inttostr(i)+'='+s1+'  ';
  108.  end;
  109. textout(x0+50,140,s2);  
  110. end.

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

  1. Объявление функции F(x), где x - входной параметр, инициализация переменной F
  2. Инициализация переменных xn, xk, x, mx, my, dx, xmn, min, xmx, max, k, x0, y0, i, n, s1, s2
  3. Установка интервала xn(=-2) и xk(=4)
  4. Настройка графического окна и координат начала координат
  5. Расчет масштабов для координатной сетки
  6. Построение координатной сетки
  7. Настройка осей, подписей и надписей
  8. Построение графика
  9. Поиск и отметка локальных минимумов и максимумов на графике
  10. Отображение области определения функции D(f), множества значений W(f), локальных минимумов/максимумов и нулей функции с помощью надписей и различных цветовые обозначений Написанный код выводит график функции y=x^3-3x^2+2, определяет область определения, множество значений, нули функции, экстремумы и строит график функции.

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


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

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

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

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

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

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