Предмет: Информатика,
автор: PhyMAthematicssics
Входные данные
Шесть чисел – координаты центра и радиус окружности и коэффициенты A, B и C нормального уравнения прямой.
Выходные данные
В первой строке одно число K, равное количеству точек пересечения прямой с окружностью. Далее в K строках координаты самих точек.
Примеры
входные данные
2 3 1 1 -1 0
выходные данные
2
3.00000 3.00000
2.00000 2.00000
Аноним:
Тут математики больше. чем информатики ))
Ответы
Автор ответа:
4
PascalABC.NET 3.4.2, сборка 1881 от 19.11.2018
Внимание! Если программа не работает, обновите версию!
begin
var xc, yc, R, A, B, C: real;
Read(xc, yc, R, A, B, C);
var alpha := A * A + B * B;
var beta := 2 * (xc * A * B - yc * A * A + B * C);
var gamma := 2 * xc * A * C + Sqr(xc * A) + C * C + Sqr(yc * A) - Sqr(R * A);
var D := Sqr(beta) - 4 * alpha * gamma;
if D < 0 then Println(0)
else
if D = 0 then
begin
var y := -beta / (2 * alpha);
var x := -(B * y + C) / A;
Println(1);
Writeln('x=', x:0:5, ' y=', y:0:5)
end
else
begin
D := Sqrt(D);
var y := (-beta - D) / (2 * alpha);
var x := -(B * y + C) / A;
Println(2);
Writeln('x=', x:0:5, ' y=', y:0:5);
y := (-beta + D) / (2 * alpha);
x := -(B * y + C) / A;
Writeln('x=', x:0:5, ' y=', y:0:5)
end
end.
Пример
2 3 1 1 -1 0
2
x=2.00000 y=2.00000
x=3.00000 y=3.00000
Приложения:
Забыл упомянуть, что на С++. Моя ошибка.
Перепишите, это несложно, алгоритм виден, а языки почти не отличаются
Похожие вопросы
Предмет: Информатика,
автор: jeuupiueyehey
Предмет: Другие предметы,
автор: Аноним
Предмет: Математика,
автор: mikitenkoveronika222
Предмет: История,
автор: Веннди
Предмет: Литература,
автор: даша1866