Определить, принадлежит ли точкам M(x,y) кругу радиуса R с центром в точке O(a,b) - Turbo Pascal
Формулировка задачи:
Определить, принадлежит ли точкам M(x,y) кругу радиуса R с центром в точке O(a,b). Если – да, найти расстояние между точками M(x,y) и O(a,b).
Решение задачи: «Определить, принадлежит ли точкам M(x,y) кругу радиуса R с центром в точке O(a,b)»
textual
Листинг программы
uses crt; type point=record x,y:real; end; function rasst(a,b:point):real; begin rasst:=sqrt(sqr(a.x-b.x)+sqr(a.y-b.y)); end; var m,n,o:point; r,s:real; t:boolean; begin clrscr; writeln('Введите координаты точки M'); readln(m.x,m.y); writeln('Введите координаты точки N'); readln(n.x,n.y); writeln('Введите координаты точки O'); readln(o.x,o.y); repeat write('Введите радиус круга R>0 R='); readln(r); until r>0; t:=(rasst(m,o)<=r)and(rasst(n,o)<=r); if t then begin writeln('Точки M,N принадлежат кругу'); write('Расстояние между ними=',rasst(m,n):0:2); end else writeln('Не обе точки принадлежат кругу'); readln end.
Объяснение кода листинга программы
- Создается тип данных
point
с полямиx
иy
для хранения координат точек. - Определяется функция
rasst
, которая вычисляет расстояние между двумя точками, используя формулу расстояния между двумя точками на плоскости. - Объявляются переменные
m
,n
иo
типаpoint
для хранения координат точек M, N и O соответственно. - Объявляется переменная
r
для хранения радиуса круга. - Запускается цикл чтения координат точек M, N и O.
- Проверяется, что введенный радиус круга больше нуля.
- Проверяется, что обе точки (M и N) принадлежат кругу, используя функцию
rasst
. - Если условие выполняется, выводится сообщение о том, что точки M и N принадлежат кругу, а также расстояние между ними.
- Если условие не выполняется, выводится сообщение о том, что хотя бы одна из точек не принадлежит кругу.
- Программа завершается после ввода всех данных.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д