Изобразить два графика с указанием точек пересечения - Pascal ABC (13625)
Формулировка задачи:
Нужно написать программу, изображающую два графика с указанием точек пересечения
y=|x^2-5*x+6|и y=2*x Help please
Решение задачи: «Изобразить два графика с указанием точек пересечения»
textual
Листинг программы
uses graphABC; function F1(x:real):real; begin F1:=abs(x*x-5*x+6); end; function F2(x:real):real; begin F2:=2*x; end; var xn,xk,max,min,mx,my,dx:real; x,x1,x2,y1,y2:real; n,x0,y0,i,k:integer; s1,s2:string; begin //интервал по Х xn:=0; xk:=7; //найдем макс. и корни x:=xn; max:=F1(x); dx:=0.001; k:=0; while x<=xk+dx do begin if F1(x)>max then max:=F1(x); if F2(x)>max then max:=F2(x); if abs(F1(x)-F2(x))<dx then begin if k=0 then begin x1:=x; y1:=F1(x); k:=1; end else begin x2:=x; y2:=F1(x); end; end; x:=x+dx; end; //координатная сетка x0:=50;; mx:=(windowwidth-x0-30)/xk; y0:=windowheight-50;; my:=(y0-20)/max; line(0,y0,windowwidth,y0);{оси} line(x0,0,X0,windowheight); for i:=1 to trunc(xk) do begin line(x0-3,y0-round(i*my*5),x0+3,y0-round(i*my*5)); line(x0+round(i*mx),y0-3,x0+round(i*mx),y0+3); textout(x0-20,y0-round(i*my*5),inttostr(i*5)); textout(x0+round(i*mx),y0+10,inttostr(i)); end; textout(x0+5,y0+10,'0'); textout(windowwidth-10,y0-20,'X'); textout(x0+10,0, 'Y'); //графики x:=xn; while x<=xk do begin setpixel(x0+round(x*mx),y0-round(F1(x)*my),clBlue); setpixel(x0+round(x*mx),y0-round(F2(x)*my),clRed); x:=x+dx; end; //пояснения textout(120,30,'Графики функций'); setfontcolor(clBlue); textout(120,45,'y=|x^2-5x+6|'); setfontcolor(clRed); textout(120,60,'y=2x'); setfontcolor(clBlack); textout(120,75,'na intervale [0;7]'); str(x1:5:2,s1); str(y1:5:2,s2); textout(120,105,'x1='+s1+' y1='+s2); str(x2:5:2,s1); str(y2:5:2,s2); textout(120,120,'x2='+s1+' y2='+s2); setbrushcolor(clGreen); //точки пересечения circle(x0+round(x1*mx),y0-round(y1*my),4); circle(x0+round(x2*mx),y0-round(y2*my),4); end.
Объяснение кода листинга программы
В данном коде используется графическая библиотека Pascal ABC для создания двух графиков и отображения точек пересечения. Переменные и функции:
- uses graphABC; - подключает графическую библиотеку
- function F1(x:real):real; - функция для вычисления значения F1(x)
- function F2(x:real):real; - функция для вычисления значения F2(x)
- var xn,xk,max,min,mx,my,dx:real; - переменные для хранения значений xn,xk,max,min,mx,my,dx
- var x,x1,x2,y1,y2:real; - переменные для хранения значений x,x1,x2,y1,y2
- var n,x0,y0,i,k:integer; - переменные для хранения значений n,x0,y0,i,k
- var s1,s2:string; - переменные для хранения строк s1 и s2
- begin - начало блока кода
Код выполняет следующие действия:
- Определяет максимальное значение функции F1(x) и функцию dx для поиска точек пересечения.
- Вычисляет координаты осей X и Y.
- Рисует графики функций F1(x) и F2(x).
- Выводит точки пересечения на графики.
- Выводит пояснения к графику. Каждая строка кода выполняет определенное действие, которое описывается в комментарии после строки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д