Построение графика функции - PascalABC.NET (24905)

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

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

Дорогие программисты прошу у вас помощи, нужно построить универсальный график функции(т.е можно построить любой график). Надеюсь на вашу помощь. Желательно под Pascal ABC Net.

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

textual
Листинг программы
  1. uses graphABC;
  2. function F1(x:real):real;
  3. begin
  4. F1:=sqr(sin(x));
  5. end;
  6. function F2(x:real):real;
  7. begin
  8. F2:=0.5-sqr(cos(x));
  9. end;
  10. var xn,xk,x,mx,dx:real;
  11.     x0,y0,my,i:integer;
  12.     s:string;
  13. begin
  14. x0:=windowwidth div 2;{центр экрана}
  15. y0:=windowheight div 2;
  16. xn:=-2*pi;xk:=2*pi;{интервал по Х}
  17. mx:=(x0-30)/xk;{масштаб по Х}
  18. my:=y0-40;{по У}
  19. line(0,y0,windowwidth,y0);{оси}
  20. line(x0,0,X0,windowheight);
  21. line(x0-3,y0+my,x0+3,y0+my);
  22. textout(x0-15,y0+my,'-1');
  23. line(x0-3,y0-my,x0+3,y0-my);
  24. textout(x0-15,y0-my,'1');
  25. for i:=1 to trunc(xk)+1 do{максимальное количество засечек в одну сторону}
  26.   begin
  27.     line(x0+round(i*mx),y0-3,x0+round(i*mx),Y0+3); {засечки на оси Х}
  28.     line(x0-round(i*mx),y0-3,x0-round(i*mx),Y0+3);
  29.     str(i,s);
  30.     {подпись оси Х}
  31.     textout(x0+round(i*mx)-15,y0+10,s);
  32.     textout(x0-round(i*mx),y0+10,'-'+s);
  33.   end;
  34. {центр}
  35. textout(x0+5,y0+10,'0');
  36. {подписи концов осей}
  37. textout(windowwidth-10,y0-10,'X');
  38. textout(x0-10,10, 'Y');
  39. {графики}
  40. x:=xn;
  41. dx:=0.001;
  42. while x<=xk do
  43.  begin
  44.   x:=x+dx; {наращиваем х}
  45.   setpixel(x0+round(x*mx),y0-round(F1(x)*my),clBlue);
  46.   setpixel(x0+round(x*mx),y0-round(F2(x)*my),clRed);
  47.  end;
  48. end.

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

  1. Объявление функций F1 и F2, которые принимают аргумент x типа real и возвращают значения функций соответственно.
  2. Объявление переменных xn, xk, x, mx, dx, x0, y0, my, i, s типа real и переменных windowwidth, windowheight типа integer.
  3. Задание начального значения x0, y0, my, i, s, mx и dx.
  4. Отображение осей X и Y на экране с помощью функции line.
  5. Отображение подписей концов осей X и Y с помощью функции textout.
  6. В цикле for от 1 до trunc(xk)+1 происходит построение засечек на оси Х с помощью функции line.
  7. С помощью функции textout отображаются подписи на оси Х.
  8. С помощью цикла while от xn до xk происходит наращивание значения x на dx и вызов функции setpixel для отображения точек графика функций F1 и F2 на экране.
  9. Конец программы.

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


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

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

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

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

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

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