Advertisement
Guest User

Untitled

a guest
Oct 17th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.70 KB | None | 0 0
  1. program quack;
  2. var x, y, a1, b1, a2, b2, r1, r2, tmp1, tmp2:real; dial:string;
  3. begin
  4.   write('Введите координаты точки: ');
  5.   readln(x, y);
  6.   write('Введите координаты центра большей окружности и её радиус: ');
  7.   readln(a1, b1, r1);
  8.   write('Введите координаты центра меньшей окружности и её радиус: ');
  9.   readln(a2, b2, r2);
  10.   if (r1 <= 0) or (r2 <= 0) then
  11.     dial := 'Ошибка! Радиус круга должен быть больше 0.'
  12.   else
  13.     if ((((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)) * ((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)) = r1+r2) or (((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)) * ((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)) + r2 == r1) or (((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)) * ((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)) + r1 == r2)) and (r1 - ((a2 - a1) * (a2 - a1) + (b2 - b1) * (b2 - b1)) <> r2 * r2) then //Проверка на то,  не выходит ли вторая окружность за пределы первой
  14.       dial := 'Графики функций не образуют заданную область пересечения.'
  15.     else begin
  16.       tmp1 := (x - a1) * (x - a1) + (y - b1) * (y - b1);
  17.       tmp2 := (x - a2) * (x - a2) + (y - b2) * (y - b2);
  18.       if tmp1 = tmp2 then
  19.         dial := 'Точка является точкой пересечения.'
  20.       else
  21.         if (tmp1 < r1 * r1) and (tmp2 > r2 * r2) then
  22.           dial := 'Точка лежит внутри области пересечения.'
  23.         else
  24.           dial := 'Точка не лежит внутри области пересечения.';
  25.     end;
  26.   writeln(dial);
  27. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement