Работа 3.3 Упр.19 Задание 1 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 19. Найти координаты точек пересечения прямой у = kx + b и окружности радиуса R с центром в начале координат. В каких координатных четвертях находятся точки пересечения? Если точек пересечения нет или прямая касается окружности, выдать соответствующее сообщение. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-3/zad1/19 98
Подставим уравнение прямой $$y=kx+b$$ в уравнение окружности с центром в начале координат:
$$x^2+y^2=R^2$$
Получим квадратное уравнение относительно $$x$$:
$$x^2+(kx+b)^2=R^2$$
$$x^2+k^2x^2+2kbx+b^2-R^2=0$$
$$ (k^2+1)x^2+2kbx+(b^2-R^2)=0 $$
Обозначим:
$$a=k^2+1,\quad b_1=2kb,\quad c=b^2-R^2$$
Тогда дискриминант:
$$D=b_1^2-4ac$$
Если $$D<0$$, то точек пересечения нет.
Если $$D=0$$, прямая касается окружности, и есть одна точка касания:
$$x=-\frac{b_1}{2a},\quad y=kx+b$$
Если $$D>0$$, то точки пересечения две:
$$x_1=\frac{-b_1-\sqrt{D}}{2a},\quad x_2=\frac{-b_1+\sqrt{D}}{2a}$$
$$y_1=kx_1+b,\quad y_2=kx_2+b$$
По знакам координат определяем координатные четверти точек.
var k,b,r,aa,bb,cc,d,x1,x2,y1,y2: real;
begin
write(‘k=’);
readln(k);
write(‘b=’);
readln(b);
write(‘R=’);
readln(r);
aa:=k*k+1;
bb:=2*k*b;
cc:=b*b-r*r;
d:=bb*bb-4*aa*cc;
if d<0 then
begin
writeln(‘Нет точек пересечения’);
halt;
end;
if d=0 then
begin
x1:=-bb/(2*aa);
y1:=k*x1+b;
writeln(‘A(‘,x1,’,’,y1,’)’);
halt;
end;
x1:=(-bb-sqrt(d))/(2*aa);
x2:=(-bb+sqrt(d))/(2*aa);
y1:=k*x1+b;
y2:=k*x2+b;
writeln(‘A(‘,x1,’,’,y1,’)’);
writeln(‘B(‘,x2,’,’,y2,’)’);
end.
Ответ
Программа находит точки пересечения прямой и окружности, а при отсутствии пересечений или касании выводит соответствующее сообщение.