Определить номер N области, в которой находиться точка M(x,y) с заданными координатами - C#
Формулировка задачи:
Определить номер N области, в которой находиться точка M(x,y) с заданными координатами. Границы области относить к области с наибольшим номером.
Решение задачи: «Определить номер N области, в которой находиться точка M(x,y) с заданными координатами»
textual
Листинг программы
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace UnitTestProject1
{
[TestClass]
public class UnitTest1
{
private const int radius = 4;
public class Point
{
public int X { get; set; }
public int Y { get; set; }
}
public int GetArea(Point point)
{
if (point.X < 0 && point.Y > 0)
{
return 3;
}
if (Math.Pow(point.X, 2) + Math.Pow(point.Y, 2) <= Math.Pow(radius, 2)
&& ((point.X >= 0 && point.Y >= 0) || (point.X <= 0 && point.Y <= 0)))
{
return 1;
}
if (Math.Pow(point.X, 2) + Math.Pow(point.Y, 2) <= Math.Pow(radius, 2)
&& point.X >= 0 && point.Y <= 0)
{
return 2;
}
return 3;
}
[TestMethod]
public void Test()
{
Point point = new Point {X = 1, Y = 1};
var result = GetArea(point);
Assert.AreEqual(1, result);
point = new Point {X = 0, Y = 0};
result = GetArea(point);
Assert.AreEqual(1, result);
point = new Point { X = -1, Y = -1 };
result = GetArea(point);
Assert.AreEqual(1, result);
point = new Point { X = -1, Y = 1 };
result = GetArea(point);
Assert.AreEqual(3, result);
point = new Point { X = 1, Y = -1 };
result = GetArea(point);
Assert.AreEqual(2, result);
point = new Point { X = 5, Y = 5 };
result = GetArea(point);
Assert.AreEqual(3, result);
}
}
}