Построение двух графиков функций в одной программе - 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.

Объяснение кода листинга программы

  1. Используется библиотека graph для построения графиков.
  2. Определены две функции: F1 и F2. F1 принимает аргумент x и возвращает значение функции, которое зависит от x. F2 также принимает аргумент x и возвращает значение функции, которая строит синусоиду.
  3. Определены переменные: a, b, mx, my, x, x1, x2, x0, y0, i, s, s1.
  4. Инициализируется графический режим с помощью функции initgraph.
  5. Задаются начальные значения для x0, y0, i, s и s1.
  6. Вычисляются масштабные коэффициенты для осей X и Y.
  7. Строятся оси X и Y с помощью функции line.
  8. Строятся засечки на оси X и Y с помощью функции line и подписываются с помощью функции outtextXY.
  9. Строится центр оси X с помощью функции outtextXY.
  10. Строятся подписи концов осей X и Y с помощью функции outtextXY.
  11. Строятся графики функций F1 и F2 с помощью цикла while.
  12. Для каждой точки на графике строятся соответствующие пиксели с помощью функции putpixel.
  13. Значения функций F1 и F2 вычисляются с помощью функций F1 и F2 соответственно.
  14. Цикл while продолжается до тех пор, пока значение переменной x не превысит значение переменной b.
  15. После окончания цикла выводится сообщение с помощью функции readln.

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы