Определить принадлежит ли точка кругу - C (СИ)
Формулировка задачи:
решить задание в стандартной системе С (не с++)
Дана окружность с координатами центра Х0 У0 и радиусом R . Определить принадлежит ли точка кругу .
Координаты точки х1, у1 вводятся с клавиатуры.
Заранее спасибо ...
Решение задачи: «Определить принадлежит ли точка кругу»
textual
Листинг программы
#include <math.h>
#include <stdio.h>
bool check(float x0,y0,r,x1,y1) //функция проверки находится ли точка в круге
{
//если расстояние от точки до центра окружности (см. Т.Пифагора) меньше радиуса окружности,
//то точка в круге, возврат результата TRUE, иначе FALSE
return sqrt((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1))<=r;
}
int main()
{
float X0=10,Y0=5,R=12;//задаем параметры окружности
float X1,Y1;//координаты точки
printf("enter x1,y1: ");//запрос ввода координат
scanf("%f,%f",&X1,&Y1);//чтение координат с клавы
if(check(X0,Y0,R,X1,Y1))//если проверка вернула TRUE
printf("point is inside circle");//точка внутри
else//иначе
printf("point is outside circle");//точка снаружи
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с математикой и выводом данных в консоль
- Определение функции check, которая принимает пять аргументов типа float: x0, y0, r, x1, y1. Эта функция проверяет, находится ли точка с координатами x1, y1 внутри окружности с центром в точке x0, y0 и радиусом r.
- Вычисление расстояния между центром окружности и точкой с помощью формулы Пифагора (поскольку у нас две пространственные координаты)
- Сравнение полученного расстояния с радиусом окружности
- Возврат значения TRUE, если точка находится внутри окружности, и FALSE в противном случае
- Определение переменных X0, Y0, R в функции main, которые задают координаты центра окружности и его радиус
- Запрос на ввод координат точки с помощью функции scanf
- Вызов функции check с передачей ей введенных пользователем координат
- Вывод соответствующего сообщения в зависимости от результата проверки:
точка внутриилиточка снаружи