Установить факт пересечения кругов - Pascal ABC

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

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

описать тип записи круг, содержащий информацию о радиусе и центре(координаты х и у). ввести массив из n кругов и выяснить, пересекаются ли они друг с другом. (координаты Х и У, и радиус надо ввести с клавиатуры)!!!!!

Решение задачи: «Установить факт пересечения кругов»

textual
Листинг программы
uses crt;
Type Circle = record
                x,y,r:real;
              end;
     massiv=array[1..10] of Circle;
var c:massiv;
    i,j,n,k:integer;
procedure SetRandom(var c:massiv;var n:integer);
begin
write('Количество окружностей до 10 n=');
read(n);
writeln('Введите параметры окружностей:');
for i:=1 to n do
 begin
  writeln('Окружность ',i);
  write('координата центра Х=');
  read(c[i].x);
  write('координата центра Y=');
  read(c[i].y);
  write('радиус=');
  read(c[i].r)
 end;
clrscr;
end;
procedure GetCircle;
begin
for i:=1 to n do
writeln(i,'-й круг находится в точке (',c[i].x:5:2,':',c[i].y:5:2,') и имеет радиус ',c[i].r:5:2);
end;
function Accross(a:Circle; b:Circle) : boolean;
var d:real;
begin
d:=sqrt(sqr(b.x - a.x) + sqr(b.y - a.y));
result:=(d<a.r+b.r)and(d>abs(a.r-b.r))//окружности могут быть 1 внутри 2
end;
begin
SetRandom(c,n);
GetCircle;
writeln;
k:=0;
for i:=1 to n-1 do
for j:=i+1 to n do
if Accross(c[i],c[j]) then
 begin
  k:=1;
  writeln('круг ',i,' пересекается с кругом ',j);
  end;
if k=0 then write('Нет пересекающихся кругов')
end.

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

  1. В начале кода объявляются переменные и тип данных для работы с окружностями.
  2. Создается процедура SetRandom, которая запрашивает у пользователя количество окружностей и их координаты и радиусы.
  3. Далее идет процедура GetCircle, которая выводит на экран все окружности.
  4. Затем определена функция Accross, которая проверяет пересечение двух окружностей.
  5. В основной части кода вызываются эти процедуры и функция, и если найдено пересечение, выводится сообщение об этом. Если пересечения не найдены, выводится соответствующее сообщение.

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


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

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

9   голосов , оценка 3.444 из 5
Похожие ответы