Определить принадлежность точки заштрихованной области - C# (205845)
Формулировка задачи:
Написать программу, которая определяет, попадает ли точка с заданными
координатами в область, закрашенную на рисунке серым цветом. Результат работы программы
вывести в виде текстового сообщения.
Решение задачи: «Определить принадлежность точки заштрихованной области»
textual
Листинг программы
//input
Console.WriteLine("Введите радиус окружности, целое число (a=0,b=0)");
int radius = int.Parse(Console.ReadLine());
Console.WriteLine("Координаты искомой точки, целые числа, через ','");
String[] coord = Console.ReadLine().Split(',');
Tuple<int, int> point = new Tuple<int, int>(int.Parse(coord[0]), int.Parse(coord[1]));
//calculate
double gipotenuza = Math.Sqrt(Math.Pow(point.Item1, 2) + Math.Pow(point.Item2, 2));
if (gipotenuza > radius)
{
Console.WriteLine("Снаружи");
Console.ReadLine();
return;
}
double ugol = Math.Round(Math.Acos(point.Item1 / gipotenuza) * 180 / Math.PI, 3);
if (point.Item2 < 0) ugol = -ugol;
Console.WriteLine((ugol >= 45 && ugol <= 90) || (ugol <= -90 && ugol >= -135) ? "Внутри" : "Снаружи");
Console.ReadLine();