График функции - Pascal ABC (16841)
Формулировка задачи:
1 . Очистить экран монитора и при необходимости установить желаемый цвет фона.
2 . Выбрать размещение системы координат в соответствии с левым и правым интервалом и в соответствии с минимальным и максимальным значением функции , которые могут быть достигнуты на этом интервале .(Левый интервал 0,правый интервал 2П)
3 . Построить горизонтальную и вертикальную координатные оси.
4 . Подписать названия координатных осей .
5 . Построить на координатных осях масштабные метки .
6 . Подписать числовые значения масштабных меток .
7 . Построить координатную сеть.
8 . Построить непосредственно сам график функции .
Функция 10sin(x)sin(5x)
Решение задачи: «График функции»
textual
Листинг программы
uses graphABC; function F(x:real):real; begin F:=10*sin(x)*sin(5*x); end; var xn,xk,x,mx,my,dx,max:real; x0,y0,i:integer; s:string; begin x0:=50;//начало координат y0:=windowheight div 2; xn:=0;xk:=2*pi;//интервал по Х x:=xn; mx:=(windowwidth-2*x0)/xk;{масштаб по Х} my:=(y0-20)/10;//max;{по У} line(0,y0,windowwidth,y0);{оси} line(x0,0,x0,windowheight); for i:=1 to 10 do{максимальное количество засечек в одну сторону} begin line(x0+round(i*pi*mx/2),y0-3,x0+round(i*pi*mx/2),y0+3); {засечки на оси Х} line(x0+3,y0-round(i*my),x0-3,y0-round(i*my)); {засечки на оси Y} line(x0+3,y0+round(i*my),x0-3,y0+round(i*my)); {подпись оси Х} textout(x0+round(mx*pi/2)-15,y0+10,'pi/2'); textout(x0+round(pi*mx),y0+10,'pi'); textout(x0+round(3*pi*mx/2),y0+10,'3pi/2'); textout(x0+round(2*pi*mx),y0+10,'2pi'); {подписи по оси Y} str(i,s); textout(x0-25,y0-round(i*my),s); textout(x0-30,y0+round(i*my),'-'+s); end; {центр} textout(x0+5,y0+10,'0'); {подписи концов осей} textout(windowwidth-15,y0-15,'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(F(x)*my),clBlue); end; setfontsize(12); setfontcolor(clBlue); textout(x0+200,10,'y=10*sin(x)*sin(5*x)'); end.
Объяснение кода листинга программы
- Используется библиотека graphABC.
- Определяется функция F(x), которая вычисляет значение функции y=10sin(x)sin(5*x).
- Определяются переменные xn, xk, x, mx, my, dx, max, x0, y0, i, s.
- Задаются начальные значения x0, y0, i, s.
- Вычисляется масштаб по оси Х (mx) и по оси У (my).
- Строятся оси: ось X от x0 до x0+windowwidth, ось Y от y0 до y0+windowheight.
- Строятся засечки на оси Х для каждого i в диапазоне от 1 до 10.
- Строятся засечки на оси Y для каждого i в диапазоне от 1 до 10.
- Строится центр оси Х.
- Строятся подписи концов осей:
X
под x0-25,Y
под x0+10,0
под x0+5. - Строятся подписи для каждого i в диапазоне от 1 до 10.
- Строится текст
y=10*sin(x)*sin(5*x)
под x0+200,10. - Устанавливается размер шрифта 12 и цвет текста синий.
- Вычисляется значение x для каждого i в диапазоне от 1 до 10.
- Вычисляется значение F(x) для каждого i в диапазоне от 1 до 10.
- Вычисляется значение x для каждого i в диапазоне от 1 до 10.
- Строится график функции y=10sin(x)sin(5*x) для каждого i в диапазоне от 1 до 10.