Помогите пожалуйста с программированием!
Необходимо разработайте консольное приложение на языке программирования C#, которое позволяет проверить, принадлежит ли точка с заданными координатами x и y некоторой ограниченной области на плоскости. Координаты X, Y, R вводятся пользователем.
Я понимаю, что тут как-то должно сработать ур-е окружности, но как его применить - не понимаю(((
Структура кода должна быть вот такой:
using System;
namespace Виктория_Колосова
{
class Program
{
static void Main(string[] args)
{
Console.Write("Введите значение X: ");
double x = double.Parse(Console.ReadLine());
Console.Write("Введите значение Y: ");
double y = double.Parse(Console.ReadLine());
Console.Write("Введите значение R: ");
double r = double.Parse(Console.ReadLine());
if (....)
{
Console.WriteLine("Точка принадлежит");
}
else
{
Console.WriteLine("Точка не принадлежит");
}
}
}
}
![](https://st.uroker.com/files/e87/e872b4ec25d20cfbb70a616bf354c201.jpg)
Ответы
using System;
namespace Виктория_Колосова
{
class Program
{
static void Main(string[] args)
{
Console.Write("Введите значение X: ");
double x = double.Parse(Console.ReadLine());
Console.Write("Введите значение Y: ");
double y = double.Parse(Console.ReadLine());
Console.Write("Введите значение R: ");
double r = double.Parse(Console.ReadLine());
bool insideCircleA = Math.sqrt((-r-x)*(-r-x) + (r-y)*(r-y)) < r; // от координаты центра левой окружности (-r,r) отнимаем точку и по теореме пифагора проверяем наличие этой точки внутри этой окружности
bool insideCircleB = Math.sqrt((r-x)*(r-x) + (-r-y)*(-r-y)) < r; // то же, но для окружности с координатами центра (r,-r)
bool insideSquare = Math.Abs(x) <= r && Math.Abs(y) <= r; // квадрат. Проверяем что модули координат не больше r
if (insideSquare && !insideCircleA && !insideCircleB) // если точка внутри квадрата и снаружи каждой из окружностей, то это нужная область
{
Console.WriteLine("Точка принадлежит");
}
else
{
Console.WriteLine("Точка не принадлежит");
}
}
}
}