Даны две окружности одинакового радиуса R , заданные координатами их центров (X1,Y1) (X2,Y2) -целыми числами. Определить пересекаются ли они, в этом случае вычислить координаты, (вещественные числа) точек их пересечения
program okr2;
const e=0.0001;
var x1,y1,x2,y2,r:integer;
x,y,a,h,d,x3,y3,x4,y4:real;
begin
writeln('Введите координаты центра 1 окружности, целые цисла');
write('x1=');readln(x1);
write('y1=');readln(y1);
writeln('Введите координаты центра 2 окружности, целые числа');
write('x2=');readln(x2);
write('y2=');readln(y2);
repeat
write('Введите радиус окружностей r>0 r=');
readln(r);
until r>0;
if (x1=x2)and(y1=y2)then write('Окружности совпадают')
else
begin
d:=sqrt(sqr(x1-x2)+sqr(y1-y2));//расстояние между центрами
if d>2*r then write('Точек пересечения нет')
else if abs(d-2*r)<e then
begin
writeln('Окружности касаются в точке:');
x3:=(x1+x2)/2;
y3:=(y1+y2)/2;
writeln('x=',x3:0:2,' y=',y3:0:2);
end
else
begin
a:=d/2;
h:=sqrt(sqr(r)-sqr(a));
x:=x1+a*(x2-x1)/d;
y:=y1+a*(y2-y1)/d;
x3:=x-(y2-y1)*h/d;
y3:=y+(x2-x1)*h/d;
x4:=x+(y2-y1)*h/d;
y4:=y-(x2-x1)*h/d;
writeln('Точки пересечения:');
writeln('1:x=',x3:0:2,' y=',y3:0:2);
writeln('2:x=',x4:0:2,' y=',y4:0:2);
end;
end;
end.