Установить факт пересечения кругов - 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.
Объяснение кода листинга программы
- В начале кода объявляются переменные и тип данных для работы с окружностями.
- Создается процедура SetRandom, которая запрашивает у пользователя количество окружностей и их координаты и радиусы.
- Далее идет процедура GetCircle, которая выводит на экран все окружности.
- Затем определена функция Accross, которая проверяет пересечение двух окружностей.
- В основной части кода вызываются эти процедуры и функция, и если найдено пересечение, выводится сообщение об этом. Если пересечения не найдены, выводится соответствующее сообщение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д