На плоскости заданы n отрезков координатами концевых точек - C#
Формулировка задачи:
На плоскости заданы n отрезков координатами концевых точек. Концы отрезков задаются двумя парами координат (x1[i],y1[i]), (x2[i],y2[i]), 1<=i<=n (концы принадлежат отрезку).
Помогите пожалуйста.
Пропустил основное. Вот суть задачи :
Необходимо найти прямую, имеющую общие точки с максимальным числом отрезков, и напечатать в порядке возрастания номера тех отрезков, которые эта прямая пересекает.
Решение задачи: «На плоскости заданы n отрезков координатами концевых точек»
textual
Листинг программы
- using System;
- class Program
- {
- static void Main()
- {
- int n = 5, max = 0, index = 0;
- Line[] lines = new Line[n];
- Random r = new Random();
- for (int i = 0; i < n; i++ )
- {
- lines[i] = new Line(r.Next(1, n + 1), r.Next(1, n + 1), r.Next(1, n + 1), r.Next(1, n + 1));
- Console.WriteLine("{0}. ({1},{2}) ({3},{4})", i, lines[i].x1, lines[i].y1, lines[i].x2, lines[i].y2);
- }
- for (int i = 0; i < n; i++)
- {
- int count = 0;
- for (int j = 0; j < n; j++)
- if (i != j && lines[i].Compare(lines[j]))
- count++;
- if (count > max)
- {
- max = count;
- index = i;
- }
- }
- Console.WriteLine("Прямая, имеющая общие точки с максимальным числом отрезков: " + index);
- Console.Write("Номера пересекаемых отрезков: ");
- for (int i = 0; i < n; i++)
- if (i != index && lines[index].Compare(lines[i]))
- Console.Write(i + " ");
- Console.ReadKey();
- }
- }
- class Line
- {
- public int x1 { get; private set; }
- public int x2 { get; private set; }
- public int y1 { get; private set; }
- public int y2 { get; private set; }
- public Line(int x1, int y1, int x2, int y2)
- {
- this.x1 = x1 < x2 ? x1 : x2;
- this.x2 = x2 < x1 ? x1 : x2;
- this.y1 = y1 < y2 ? y1 : y2;
- this.y2 = y2 < y1 ? y1 : y2;
- }
- public bool Compare(Line target)
- {
- if (x1 <= target.x2 && x2 >= target.x1 && y1 <= target.y2 && y2 >= target.y1)
- return true;
- return false;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д