Построение графика функции - 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.
Объяснение кода листинга программы
- Объявление функций F1 и F2, которые принимают аргумент x типа real и возвращают значения функций соответственно.
- Объявление переменных xn, xk, x, mx, dx, x0, y0, my, i, s типа real и переменных windowwidth, windowheight типа integer.
- Задание начального значения x0, y0, my, i, s, mx и dx.
- Отображение осей X и Y на экране с помощью функции line.
- Отображение подписей концов осей X и Y с помощью функции textout.
- В цикле for от 1 до trunc(xk)+1 происходит построение засечек на оси Х с помощью функции line.
- С помощью функции textout отображаются подписи на оси Х.
- С помощью цикла while от xn до xk происходит наращивание значения x на dx и вызов функции setpixel для отображения точек графика функций F1 и F2 на экране.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д