Входные данныеШесть чисел координаты центра и радиус окружности и коэффициенты

Входные данные
6 чисел координаты центра и радиус окружности и коэффициенты A, B и C обычного уравнения прямой.

Выходные данные
В первой строке одно число K, одинаковое количеству точек пересечения прямой с окружностью. Дальше в K строчках координаты самих точек.

Образцы
входные данные
2 3 1 1 -1 0
выходные данные
2
3.00000 3.00000
2.00000 2.00000

Задать свой вопрос
Вова Засов
Здесь арифметики больше. чем информатики ))
1 ответ

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 lt; 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

Ульяна Тавакалова
Пренебрегал упомянуть, что на С++. Моя ошибка.
Eva
Перепишите, это нетрудно, алгоритм виден, а языки практически не отличаются
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт