Построить график функции y=a*cos(x)+b - Pascal ABC
Формулировка задачи:
Компьютер строит график функции y=a*cos(x)+b. Переменные a, b задает пользователь.
Решение задачи: «Построить график функции y=a*cos(x)+b»
textual
Листинг программы
uses graphABC; function f(a,b,x:real):real; begin f:=a*cos(x)+b; end; var a,b,xn,xk,x,mx,dx,my:real; x0,y0,n,i:integer; begin repeat write('Введите параметр а от -5 до 5 a='); readln(a); until(a>=-5)and(a<=5); repeat write('Введите параметр b от -5 до 5 b='); readln(b); until(b>=-5)and(b<=5); setwindowsize(500,500); centerwindow; x0:=windowwidth div 2; y0:=windowheight div 2; xn:=-2*pi;xk:=2*pi; mx:=(x0-30)/xk; my:=(y0-30)/(1+abs(a)+abs(b)); line(0,y0,windowwidth,y0); line(x0,0,x0,windowheight); if abs(a)+abs(b)+1>2*pi then n:=trunc(abs(a)+abs(b))+1 else n:=7; for i:=1 to n 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); textout(x0+round(i*mx),y0+10,inttostr(i)); textout(x0-round(i*mx),y0+10,inttostr(-i)); line(x0-3,y0-round(i*my),x0+3,y0-round(i*my)); line(x0+3,y0+round(i*my),x0+3,y0+round(i*my)); textout(x0-10,y0-round(i*my),inttostr(i)); textout(x0-15,y0+round(i*my),inttostr(-i)); end; textout(x0+5,y0+10,'0'); textout(windowwidth-20,y0-20,'X'); textout(x0+5,10, 'Y'); x:=xn; setpencolor(clRed); while x<=xk do begin if x=xn then moveto(x0+round(x*mx),y0-round(f(a,b,x)*my)) else lineto(x0+round(x*mx),y0-round(f(a,b,x)*my)); x:=x+0.1; end; end.
Объяснение кода листинга программы
- Импортируется библиотека graphABC.
- Определяется функция f(a,b,x), которая вычисляет значение функции y=a*cos(x)+b для заданных значений a и b и переменной x.
- Определяются переменные a, b, xn, xk, x, mx, dx, my.
- Устанавливается размер окна графического интерфейса.
- Вычисляются координаты центра окна.
- Задаются начальные координаты для линии графика.
- Вычисляется количество точек на графике.
- Для каждой точки на графике выполняются следующие действия:
- Строится линия между двумя точками.
- Выводится номер точки на графике.
- Строятся вертикальные линии для отображения масштаба.
- Выводится значение функции в точке.
- Строится горизонтальная линия для отображения оси X.
- Строится горизонтальная линия для отображения оси Y.
- Выводится значение функции в точке (0,y0).
- Задается цвет пера.
- Вычисляется новая координата x для движения по оси X.
- Если новая координата x меньше текущей, то обновляется значение функции и пересчитываются координаты для следующей точки.
- Графическое окно обновляется с новыми значениями функции.
- Координаты окна обновляются.
- Выводится значение функции в точке (x0,y0).
- Закрывается окно графического интерфейса.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д