Построение двух графиков функций в одной программе - Turbo Pascal
Формулировка задачи:
Нужно построить 2 графика в одной программе по следующим функциям
1)F(x)=\begin{cases}
& \text{ if } 3x - 9 при x\leq 7 \\
& \text{ if } x= 1\({x}^{2} - 4 при x>7
\end{cases}
2)F(x) = xSinx
1)
2)F(x) =xSinx
PRI=при
Решение задачи: «Построение двух графиков функций в одной программе»
textual
Листинг программы
uses graph; function F1(x:real):real; begin if x<=7 then f1:=3*x-9 else f1:=1/x/x-4; end; function F2(x:real):real; begin f2:=x*sin(x); end; var a,b,mx,my:real; x,x1,x2:real; x0,y0,i:integer; s,s1:string; begin x0:=0; initgraph(x0,y0,'');{инициализация графического режима} a:=0; b:=14;{интервал по Х} x0:=50;{начало координат по Х} mx:=(getmaxX-x0-30)/b;{масштаб по Х} y0:=getmaxY div 2;{начало координат по Y} my:=(y0-20)/14; line(0,y0,getmaxX,y0);{оси} line(x0,0,x0,getmaxY); for i:=1 to 14 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)); {подпись оси У} str(i,s); settextstyle(0,0,1);{горизонтальный шрифт} outtextXY(x0-20,y0-round(i*my),s);{соответственно засечкам} outtextXY(x0-25,y0+round(i*my),'-'+s); line(x0+round(i*mx),y0-3,x0+round(i*mx),y0+3); {засечки на оси Х} {подпись оси Х} outtextXY(x0+round(i*mx)+5,y0+10,s); end; {центр} outtextXY(x0-15,y0+10,'0'); {подписи концов осей} outtextXY(getmaxX-10,y0-10,'X'); outtextXY(x0+5,10, 'Y'); {графики} x:=a; x1:=a; while x<=b do begin putpixel(x0+round(x*mx),y0-round(F1(x)*my),12); putpixel(x0+round(x*mx),y0-round(F2(x)*my),9); x:=x+0.001; end; readln end.
Объяснение кода листинга программы
- Используется библиотека graph для построения графиков.
- Определены две функции: F1 и F2. F1 принимает аргумент x и возвращает значение функции, которое зависит от x. F2 также принимает аргумент x и возвращает значение функции, которая строит синусоиду.
- Определены переменные: a, b, mx, my, x, x1, x2, x0, y0, i, s, s1.
- Инициализируется графический режим с помощью функции initgraph.
- Задаются начальные значения для x0, y0, i, s и s1.
- Вычисляются масштабные коэффициенты для осей X и Y.
- Строятся оси X и Y с помощью функции line.
- Строятся засечки на оси X и Y с помощью функции line и подписываются с помощью функции outtextXY.
- Строится центр оси X с помощью функции outtextXY.
- Строятся подписи концов осей X и Y с помощью функции outtextXY.
- Строятся графики функций F1 и F2 с помощью цикла while.
- Для каждой точки на графике строятся соответствующие пиксели с помощью функции putpixel.
- Значения функций F1 и F2 вычисляются с помощью функций F1 и F2 соответственно.
- Цикл while продолжается до тех пор, пока значение переменной x не превысит значение переменной b.
- После окончания цикла выводится сообщение с помощью функции readln.