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

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

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

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

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

textual
Листинг программы
uses graphABC;
function F1(x:real):real;
begin
F1:=sqr(sin(x));
end;
function F2(x:real):real;
begin
F2:=0.5-sqr(cos(x));
end;
var xn,xk,x,mx,dx:real;
    x0,y0,my,i:integer;
    s:string;
begin
x0:=windowwidth div 2;{центр экрана}
y0:=windowheight div 2;
xn:=-2*pi;xk:=2*pi;{интервал по Х}
mx:=(x0-30)/xk;{масштаб по Х}
my:=y0-40;{по У}
line(0,y0,windowwidth,y0);{оси}
line(x0,0,X0,windowheight);
line(x0-3,y0+my,x0+3,y0+my);
textout(x0-15,y0+my,'-1');
line(x0-3,y0-my,x0+3,y0-my);
textout(x0-15,y0-my,'1');
for i:=1 to trunc(xk)+1 do{максимальное количество засечек в одну сторону}
  begin
    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);
    {подпись оси Х}
    textout(x0+round(i*mx)-15,y0+10,s);
    textout(x0-round(i*mx),y0+10,'-'+s);
  end;
{центр}
textout(x0+5,y0+10,'0');
{подписи концов осей}
textout(windowwidth-10,y0-10,'X');
textout(x0-10,10, 'Y');
{графики}
x:=xn;
dx:=0.001;
while x<=xk do
 begin
  x:=x+dx; {наращиваем х}
  setpixel(x0+round(x*mx),y0-round(F1(x)*my),clBlue);
  setpixel(x0+round(x*mx),y0-round(F2(x)*my),clRed);
 end;
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
Похожие ответы