Определить, сколько точек множества попадает в круг с центром в первой точке - C#
Формулировка задачи:
Дано множество точек на плоскости. Сколько точек данного множества попадает в круг с центром в первой точке и радиусом равным расстоянию между двумя последними точками
Решение задачи: «Определить, сколько точек множества попадает в круг с центром в первой точке»
textual
Листинг программы
- using System;
- namespace cyb20 {
- class Vector {
- //Свойства
- public double X { get; set; }
- public double Y { get; set; }
- //Методы
- public static Vector operator -(Vector u, Vector w) {
- return new Vector() {
- X=u.X-w.X,
- Y=u.Y-w.Y
- };
- }
- public double mod() {
- return Math.Sqrt(X*X+Y*Y);
- }
- public override string ToString() {
- return string.Format("({0},{1})",X,Y);
- }
- }
- class Program {
- static void Main() {
- //Делаем массив векторов, указывающих на точки
- Vector[] m= {
- new Vector(){ X=1, Y=2 },
- new Vector(){ X=4, Y=3 },
- new Vector(){ X=5, Y=6 },
- new Vector(){ X=7, Y=-6 },
- new Vector(){ X=8, Y=7 },
- new Vector(){ X=9, Y=10 },
- };
- //Этот вектор указывает на центр круга
- Vector c=m[0];
- //Определим радиус круга
- int l=m.Length;
- double r=(m[l-1]-m[l-2]).mod();
- //Пройдемся по массиву, опеределяя лежит точка в круге или нет
- int cnt=0;
- for (int i=0; i<l; i++)
- if ((m[i]-c).mod()<=r)
- cnt++;
- Console.WriteLine("Внутри круга лежит {0} точек, с учетом центра",cnt);
- Console.ReadLine();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д