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