Окружность задается радиусом и координатами центра - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д