Точки на координатной плоскости - C#
Формулировка задачи:
Дано множество A из N точек. Среди всех точек этого множества, лежащих в первой|второй|третьей|четвертой четверти, найти точку, наиболее близкую|удаленную от начала координат. Если таких точек нет, то вывести точку с нулевыми координатами.
Решение задачи: «Точки на координатной плоскости»
textual
Листинг программы
class Program { static void Main(string[] args) { //набор случайных точек Point[] points = new Point[20]; for (int i = 0; i < points.Length; i++) points[i] = new Point(); /*выбор квадранта и максимальной/минимальной точки в нем будем считать что пользователь вменяем и проверок на ввод чинить не нужно*/ Console.Write("Введите четверть: "); int quadrant = int.Parse(Console.ReadLine()); Point min = Point.MaxPoint; Point max = Point.MinPoint; foreach (Point point in points) if (point.GetQuadrant() == quadrant) { if (point.CompareTo(min) == -1) min = point; if (point.CompareTo(max) == 1) max = point; } Console.WriteLine("Max: {0}", max); Console.WriteLine("Min: {0}", min); } } class Point : IComparable<Point> { static Random rand = new Random(); public static readonly Point MinPoint = new Point(0, 0); public static readonly Point MaxPoint = new Point(int.MaxValue, int.MaxValue); public int X { get; private set; } public int Y { get; private set; } public Point() { this.X = rand.Next(-100, 100); this.Y = rand.Next(-100, 100); } public Point(int x, int y) { this.X = x; this.Y = y; } public int GetQuadrant() { int quadrant = 0; if (this.X > 0) if (this.Y > 0) quadrant = 1; else quadrant = 4; else if (this.Y > 0) quadrant = 2; else quadrant = 3; return quadrant; } public double VectorLength() { return Math.Sqrt(Math.Pow(X, 2) + Math.Pow(Y, 2)); } public int CompareTo(Point other) { return this.VectorLength().CompareTo(other.VectorLength()); } public override string ToString() { return string.Format("({0},{1}); Vector length = {2}", this.X, this.Y, this.VectorLength()); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д