Построить график функции - Turbo Pascal (29368)
Формулировка задачи:
Построить график функции
Решение задачи: «Построить график функции»
textual
Листинг программы
uses graph; function F(x:real):real; var z,ac:real; begin if x<-0.1 then F:=2*x-3*sin(3*x) else if x>=1.2 then F:=2*x-sin(x)/cos(x)+2 else begin z:=(x+1)/4; if x=0 then ac:=0 else ac:=arctan((1-z*z)/z); F:=2*x-ac; end; end; var a,b,mx,my,max:real; x:real; x0,y0,i:integer; s:string; begin x0:=0; initgraph(x0,y0,'');{инициализация графического режима} a:=-2; b:=2;{интервал по Х} x0:=getmaxX div 2;{начало координат по Х} mx:=(x0-30)/b;{масштаб по Х} y0:=getmaxY div 2; my:=(y0-30)/20; line(0,y0,getmaxX,y0);{оси} line(x0,0,x0,getmaxY); for i:=1 to 4 do{максимальное количество засечек в одну сторону} begin line(x0-3,y0-round(i*my*10),x0+3,y0-round(i*my*10));{засечки на оси У} line(x0-3,y0+round(i*my*10),x0+3,y0+round(i*my*10)); {подпись оси У} str(i*10,s); outtextXY(x0-25,y0-round(i*my*10),s);{соответственно засечкам} outtextXY(x0-30,y0+round(i*my*10),'-'+s); line(x0+round(i*mx/2),y0-3,x0+round(i*mx/2),y0+3); {засечки на оси Х} line(x0-round(i*mx/2),y0-3,x0-round(i*mx/2),y0+3); {подпись оси Х} str(i/2:0:1,s); outtextXY(x0+round(i*mx/2)+5,y0+10,s); outtextXY(x0-round(i*mx/2)+5,y0+10,'-'+s); end; {центр} outtextXY(x0+5,y0+10,'0'); {подписи концов осей} outtextXY(getmaxX-10,y0-10,'X'); outtextXY(x0+5,10, 'Y'); {график} x:=a; while x<=b do begin if abs(cos(x))>0.01 then putpixel(x0+round(x*mx),y0-round(F(x)*my),14); x:=x+0.0001; end; {ассимптоты} setcolor(10); setlinestyle(1,0,1); line(x0+round(-0.1*mx),0,x0+round(-0.1*mx),getmaxY); line(x0+round(1.2*mx),0,x0+round(1.2*mx),getmaxY); line(x0+round(pi/2*mx),0,x0+round(pi/2*mx),getmaxY); readln end.
Объяснение кода листинга программы
- В начале кода подключается библиотека graph, которая, вероятно, содержит функции для работы с графиками.
- Создается функция F(x), которая, вероятно, представляет собой функцию, график которой нужно построить. Внутри функции проверяются условия, при которых она возвращает значения. Если x меньше -0.1, то возвращается 2x - 3sin(3x). Если x больше или равно 1.2, то возвращается 2x - sin(x)/cos(x) + 2. В остальных случаях выполняется следующая последовательность действий:
- Вычисляется значение переменной z как (x+1)/4.
- Если x равно 0, то переменной ac присваивается значение 0. В противном случае, переменной ac присваивается значение арктангенса ((1-z*z)/z).
- Значение переменной F вычисляется как 2*x - ac.
- Создается переменная a, которая представляет собой значение интервала по Х.
- Создается переменная b, которая представляет собой значение интервала по Х.
- Вычисляется среднее значение x и y по оси Х и Y, и эти значения присваиваются переменным x0 и y0 соответственно.
- Инициализируется графический режим с помощью функции initgraph(x0, y0, ``).
- Вычисляется масштаб по оси Х для переменной mx.
- Вычисляется масштаб по оси Y для переменной my.
- Строятся линии и подписи осей по заданным координатам.
- Строятся засечки на оси У для каждого из 4 интервалов.
- Строятся засечки на оси Х для каждого из 4 интервалов.
- Строится центр оси Х.
- Строятся подписи концов осей.
- Строится график функции F(x) с помощью цикла while.
- Строятся асимптоты для оси Х.
- Конец программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д