Набрать текст программы и отладить ее работу в среде Турбо Паскаль. Подобрать тестовые данные. Протестировать. Задачка: Дана кривая, заданная уравнением y=x2+c и прямая y=kx+b. Определить, сколько общих точек имеют эти прямые, ...

Набрать текст программы и отладить ее работу в среде Турбо Паскаль. Подобрать тестовые данные. Протестировать. Задачка: Дана кривая, заданная уравнением y=x2+c и прямая y=kx+b. Определить, сколько общих точек имеют эти прямые, и найти их координаты.
Гость
Ответ(ы) на вопрос:
Гость
Сначала надо найти аналитическое решение задачи. Определить координаты точек пересечения двух функций - это совместно решить уравнения, описывающего функции. [latex]\begin {cases} y=x^2+c \\ y=kx+b \end {cases} \to x^2+c=kx+b \\ \\ x^2-kx+(c-b)=0 \\ D=k^2-4(c-b) \\ \displaystyle x_{1,2}= \frac{k\pm \sqrt D}{2}; \quad y_{1,2}=kx_{1,2}+b [/latex] Теперь можно составить программу, предусмотрев в ней анализ случаев 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)
Не нашли ответ?
Ответить на вопрос
Похожие вопросы