Вывести в координатных осях график, заданный функцией - Turbo Pascal
Формулировка задачи:
Вывести в координатных осях график, заданный функцией
y(t)=2sin(4t)+5e^-2t, 0 <= t <= 2π
Решение задачи: «Вывести в координатных осях график, заданный функцией»
textual
Листинг программы
uses graph; function F(t:real):real; begin F:=2*sin(4*t)+5*exp(-2*t); end; var xn,xk,max,min,x,y,mx,my,dx:real; x0,y0,i,px,py:integer; s:string; begin x0:=0; initgraph(x0,y0,''); x0:=40;{слева} y0:=getmaxY div 2;{центр} xn:=0;xk:=2*pi;{интервал по Х} mx:=(getmaxX-2*x0)/(xk-xn);{масштаб по Х} {найдем максимум и минимум для масштаба по У} max:=F(xn);min:=max; x:=xn; while x<=xk do begin x:=x+0.01; if F(x)>max then max:=F(x) else if F(x)<min then min:=F(x); end; if max>abs(min) then my:=(y0-20)/max{по У} else my:=(y0-20)/abs(min); setbkcolor(15);{цвет фона} setcolor(8);{цвет линий} line(0,y0,getmaxX,y0);{оси} line(x0,0,X0,getmaxY); for i:=1 to round(xk-xn)+1 do{максимальное количество засечек в одну сторону} begin 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)); 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); {подпись оси У} outtextXY(x0-20,y0+round(i*my),'-'+s);{соответственно засечкам} outtextXY(x0-15,y0-round(i*my),s); {подпись оси Х} outtextXY(x0+round(i*mx),y0+10,s); outtextXY(x0-round(i*mx),y0+10,'-'+s); end; {центр} outtextXY(x0+5,y0+10,'0'); {подписи концов осей} outtextXY(getmaxX-10,y0-10,'X'); outtextXY(x0-10,10, 'Y'); setcolor(8); {график} x:=xn; dx:=0.001; while x<=xk do begin x:=x+dx; {наращиваем х} px:=x0+round(x*mx); {изменение по оси Х} y:=F(x); {график в реальных координатах} py:=y0-round(y*my);{в экранных} putpixel(px,py,8); end; readln end.
Объяснение кода листинга программы
- Объявлены переменные и функции:
- xn, xk, max, min, x, y, mx, my, dx (девять переменных)
- F (функция)
- Инициализированы переменные:
- x0, y0 (координаты начала осей)
- xn, xk (начальное и конечное значение переменной x)
- mx (масштаб по оси x)
- my (масштаб по оси y)
- dx (шаг по x)
- Найдены максимальное и минимальное значение функции F в интервале от xn до xk.
- Вычислены координаты осей Y и X.
- Засечки на оси Y (y0-round(imy)) и на оси X (x0-round(imx)).
- Подписи оси Y (s) выводятся на уровне каждой засечки.
- Подписи оси X (s) выводятся на уровне каждой засечки.
- Выводится точка (x0+5,y0+10) в центре графика.
- Выводятся подписи
X
иY
на концах осей. - График выводится путем заполнения пикселей в пределах от xn до xk с шагом dx.
- Цвет фона установлен в 15, цвет линий - в 8.
- Оси и засечки отображаются линиями.
- Код завершается после чтения строки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д