Определить пару точек,которые наиболее близки друг к другу - C#
Формулировка задачи:
1)Задано 10 точек , определить пару точек,которые наиболее близки друг к другу
2)Для 10 точек определить ,находятся они на окружности или хотя бы в кольце
есть некоторые наработки,но дальше дело не пошло
namespace KlassPoint { class Point { double x, y; public Point(double x, double y) { this.x = x; this.y = y; } public void Move(double dx, double dy) { x = x + dx; y = y + dy; } public double Distance() { return Math.Sqrt(x * x + y * y); } public double Distance(Point p) { return Math.Sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y)); } public static double Distance(Point d, Point f) { return Math.Sqrt((d.x - f.x) * (d.x - f.x) + (d.y - f.y) * (d.y - f.y)); } } class Program { static void Main(string[] args) { Point A = new Point(0, 0); Point B = new Point(0, 4); Point C = new Point(5, 0); Point min; if (A.Distance() < B.Distance() && A.Distance() < C.Distance()) min = A; if (B.Distance() < A.Distance() && B.Distance() < C.Distance()) min = B; if (C.Distance() < A.Distance() && C.Distance() < B.Distance()) min = C; Point.Distance(A,B); } } }
Решение задачи: «Определить пару точек,которые наиболее близки друг к другу»
textual
Листинг программы
int minP1 = 0, minP2 = 1; { в качестве минимального первоначально берём расстояние от 1-й до 2-й точки (т.е. индексы 0 и 1} double MinDistance = Distance( P[0], P[1] ); for(int i=0; i<N-2; i++) { for(int j=i+1; j<N-1; j++) { if(Distance( i, j) < MinDistance) { MinDistance = Distance( i, j); minP1 = i; minP2 = j; } } } Console.WriteLine('Минимальное расстояние {0} между точками {1} и {2}', MinDistance, minP1, minP2 );
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д