Линии пересекаются в точках, где их уравнения при одинаковых аргументах возвращают одинаковые значения. Чтобы определить условия точек пересечения заданных уравнений линий

следует приравнять их правые части и решить полученное уравнение относительно аргумента х.
+(f-p)=0;)
Сделаем подстановку и получим квадратное уравнение:

Далее находим дискриминант, проверяем его знак, производим ветвление алгоритма в зависимости от результата. При неотрицательных t определяем х, извлекая из t квадратный корень и для каждого х вычисляем у из второго уравнения (оно короче).var a, b, c, d, f, m, p: real;function y(x: real): real;begin y := b * x * sqr(x) + m * sqr(x) + d * x + pend;procedure OutPoint(x: real);begin writeln('Найдена точка пересечения функций (', x, ',', y(x), ')')end;procedure TDev(t: real; var np: Boolean);var x: real;begin if t = 0 then begin np := false; OutPoint(0) end else if t > 0 then begin np := false; x := -sqrt(t); OutPoint(x); x := sqrt(t); OutPoint(x) endend;var x1, x2, u, v, t1, t2, Dis: real; NoPoints: Boolean;begin writeln('Введите значения переменных a,b,c,d,f,m,p'); readln(a, c, f, m, p); u := c - m; v := f - p; Dis := sqr(u) - 4 * a * v; NoPoints := true; if Dis = 0 then begin t1 := -u / (2 * a); TDev(t1,NoPoints); end else begin t1 := (-u - sqrt(Dis)) / (2 * a); TDev(t1,NoPoints); t2 := (-u + sqrt(Dis)) / (2 * a); TDev(t2,NoPoints); end; if NoPoints then writeln('Общих точек пересечения нет')end.Тестовое решениеВведите значения переменных a,b,c,d,f,m,p2 3 4 5 6 7 8Найдена точка пересечения функций (-1.27201964951407,14.0901699437495)Найдена точка пересечения функций (1.27201964951407,14.0901699437495)Введите значения переменных a,b,c,d,f,m,p-3 -5 -3 2 1 4 5Общих точек пересечения нет