Окружность задается радиусом и координатами центра - Free Pascal
Формулировка задачи:
Окружность задается радиусом и координатами центра. Определить, найдется ли среди данных десяти окружностей окружность, лежащая внутри данной окружности.
Написать с использованием подпрограмм. Заранее БОЛЬШОЕ спасибо.
Решение задачи: «Окружность задается радиусом и координатами центра»
textual
Листинг программы
const n=10; function inside(x0,y0,r0,x,y,r:real):boolean; begin inside:=sqr(x0-x)+sqr(y0-y)<=sqr(r0-r) end; var x0,y0,r0,x,y,r:real; t:array[1..3,1..n] of real; i,k:byte; begin randomize; repeat writeln('Введите кооординаты центра от -10 до 10 и радиус от 1 до 10 основной окружности'); readln(x0,y0,r0); until(x0>=-10)and(x0<=10)and(y0>=-10)and(y0<=10)and(r0>=1)and(r0<=10); for i:=1 to n do begin t[1,i]:=-10+random*(20); t[2,i]:=-10+random*(20); t[3,i]:=random*(10); end; writeln('Параметры окружностей'); for i:=1 to n do begin write(i:2,'(x=',t[1,i]:5:2,' y=',t[2,i]:5:2,' r=',t[3,i]:5:2,') '); if i mod 2=0 then writeln; end; k:=0; i:=1; while(i<=n)and(k=0) do if inside(x0,y0,r0,t[1,i],t[2,i],t[3,i]) then k:=i else inc(i); if k=0 then write('Нет окружности внутри данной') else write('Есть окружности внутри данной, например окружность номер ',k) end.
Объяснение кода листинга программы
- В начале кода объявлены следующие переменные:
- x0, y0, r0 - координаты центра и радиус основной окружности;
- x, y, r - переменные для проверки вхождения точки в окружность;
- t - массив для хранения координат точек на окружностях;
- i, k - счётчики для обхода массива и поиска окружности.
- С помощью цикла repeat-until считываются координаты центра и радиус основной окружности.
- С помощью цикла for генерируются случайные координаты точек на окружностях и записываются в массив t.
- С помощью цикла for выводятся параметры окружностей.
- С помощью цикла while-i проверяется, есть ли окружности внутри заданной. Если есть, то выводится номер такой окружности.
- Если окружность не найдена, выводится сообщение
Нет окружности внутри данной
. - Если окружность найдена, то выводится сообщение
Есть окружности внутри данной, например окружность номер k
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д