Набрать текст программы и отладить ее работу в среде турбо паскаль. подобрать тестовые данные. протестировать. : дана кривая, заданная уравнением y=x2+c и прямая y=kx+b. определить, сколько общих точек имеют эти прямые, и найти их координаты.
Сначала надо найти аналитическое решение задачи. Определить координаты точек пересечения двух функций - это совместно решить уравнения, описывающего функции.
Теперь можно составить программу, предусмотрев в ней анализ случаев D<0, D=0 и D>0.
uses Crt; var k,b,c,x1,x2,y1,y2,d:real; begin ClrScr; Write('Введите через пробел c,k,b: '); Read(c,k,b); d:=sqr(k)-4*(c-b); if d<0 then Writeln('Точек пересечения нет') else if d=0 then begin x1:=k/2; y1:=k*x1+b; Writeln('Координаты точки пересечения (',x1:0:4,',',y1:0:4,')') end else begin d:=sqrt(d); x1:=(k-d)/2; y1:=k*x1+b; x2:=(k+d)/2; y2:=k*x2+b; Writeln('Координаты точек пересечения:'); Writeln('(',x1:0:4,',',y1:0:4,'), (',x2:0:4,',',y2:0:4,')') end; ReadKey end.
Определить координаты точек пересечения двух функций - это совместно решить уравнения, описывающего функции.
Теперь можно составить программу, предусмотрев в ней анализ случаев D<0, D=0 и D>0.
uses Crt;
var
k,b,c,x1,x2,y1,y2,d:real;
begin
ClrScr;
Write('Введите через пробел c,k,b: '); Read(c,k,b);
d:=sqr(k)-4*(c-b);
if d<0 then Writeln('Точек пересечения нет')
else
if d=0 then begin
x1:=k/2; y1:=k*x1+b;
Writeln('Координаты точки пересечения (',x1:0:4,',',y1:0:4,')')
end
else begin
d:=sqrt(d);
x1:=(k-d)/2; y1:=k*x1+b;
x2:=(k+d)/2; y2:=k*x2+b;
Writeln('Координаты точек пересечения:');
Writeln('(',x1:0:4,',',y1:0:4,'), (',x2:0:4,',',y2:0:4,')')
end;
ReadKey
end.
Тестовые решения:
Введите через пробел c,k,b: -2 1 1
Координаты точек пересечения:
(-1.3028,-0.3028), (2.3028,3.3028)
Введите через пробел c,k,b: 1 3 -5
Точек пересечения нет
Введите через пробел c,k,b: 12 6 3
Координаты точки пересечения (3.0000,21.0000)