Найти координаты точек пересечения двух окружностей - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Найти координаты пунктов пересечения двух окружностей радиусами и с центрами в пунктах (;) и (;) соответственно.

Решение задачи: «Найти координаты точек пересечения двух окружностей»

textual
Листинг программы
  1. const t=0.0001;
  2. var x1,y1,r1,x2,y2,r2:integer;
  3.     x,y,a,b,h,d,x3,y3,x4,y4:real;
  4. begin
  5. writeln('Введите параметры 1 окружности x,y,R');
  6. readln(x1,y1,r1);
  7. writeln('Введите параметры 2 окружности x,y,R');
  8. readln(x2,y2,r2);
  9. {x1:=-1;y1:=1;r1:=13;
  10. x2:=5;y2:=1;r2:=12;}
  11. d:=sqrt(sqr(x1-x2)+sqr(y1-y2));
  12. if (d>r1+r2)or(d<abs(r1-r2)) then write('Точек пересечения нет')
  13. else if abs(d-(r1+r2))<t then
  14.   begin
  15.    writeln('Окружности касаются в точке:');
  16.    x3:=(x1+x2)/2;
  17.    y3:=(y1+y2)/2;
  18.    writeln('x=',x3:0:2,'  y=',y3:0:2);
  19.   end
  20. else
  21.  begin
  22.   b:=(sqr(r2)-sqr(r1)+sqr(d))/(2*d);
  23.   a:=d-b;
  24.   h:=sqrt(sqr(r2)-sqr(b));
  25.   x:=x1+(x2-x1)/(d/a);
  26.   y:=y1+(y2-y1)/(d/a);
  27.   x3:=x-(y-y2)*h/b;
  28.   y3:=y+(x-x2)*h/b;
  29.   x4:=x+(y-y2)*h/b;
  30.   y4:=y-(x-x2)*h/b;
  31.   writeln('Точки пересечения:');
  32.   writeln('1:x=',x3:0:2,'  y=',y3:0:2);
  33.   writeln('2:x=',x4:0:2,'  y=',y4:0:2);
  34.  end;
  35. end.

Объяснение кода листинга программы

  1. В начале кода объявляются переменные t, x1, y1, r1, x2, y2, r2:integer; и x, y, a, b, h, d, x3, y3, x4, y4:real.
  2. Затем происходит чтение параметров первой окружности из стандартного ввода и сохранение их в соответствующие переменные x1, y1, r1. Аналогично читаются параметры второй окружности и сохраняются в переменные x2, y2, r2.
  3. Далее вычисляется расстояние между центрами окружностей, а также проверяется, пересекаются ли они или нет. Если расстояние больше или равно сумме радиусов окружностей или меньше разности между ними, то выводится сообщение о том, что точек пересечения нет.
  4. Если же расстояние меньше заданной величины t, то выполняется дальнейший расчет. Для этого вычисляется среднее значение координат x и y от двух окружностей и выводится сообщение о том, что окружности касаются в точке.
  5. Если же расстояние больше или равно t, то вычисляются точки пересечения. Для этого вычисляются значения x3, y3, x4, y4 по формулам, которые зависят от радиусов окружностей и расстояния между ними. Выводится сообщение о том, что точки пересечения найдены.
  6. Код завершается без использования вложенных списков.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы