Определить, сколько точек множества попадает в круг с центром в первой точке - C#

Узнай цену своей работы

Формулировка задачи:

Дано множество точек на плоскости. Сколько точек данного множества попадает в круг с центром в первой точке и радиусом равным расстоянию между двумя последними точками

Решение задачи: «Определить, сколько точек множества попадает в круг с центром в первой точке»

textual
Листинг программы
  1. using System;
  2.  
  3.  
  4.  
  5. namespace cyb20 {
  6.     class Vector {
  7.         //Свойства
  8.         public double X { get; set; }
  9.         public double Y { get; set; }
  10.  
  11.         //Методы
  12.         public static Vector operator  -(Vector u, Vector w) {
  13.             return new Vector() {
  14.                                   X=u.X-w.X,
  15.                                   Y=u.Y-w.Y
  16.                                 };
  17.         }
  18.         public double mod() {
  19.             return Math.Sqrt(X*X+Y*Y);
  20.         }
  21.         public override string ToString() {
  22.             return string.Format("({0},{1})",X,Y);
  23.         }
  24.     }
  25.     class Program {
  26.         static void Main() {
  27.             //Делаем массив векторов, указывающих на точки
  28.             Vector[] m= {                        
  29.                          new Vector(){ X=1, Y=2 },
  30.                          new Vector(){ X=4, Y=3 },
  31.                          new Vector(){ X=5, Y=6 },                          
  32.                          new Vector(){ X=7, Y=-6 },  
  33.                          new Vector(){ X=8, Y=7 },
  34.                          new Vector(){ X=9, Y=10 },
  35.                        };
  36.             //Этот вектор указывает на центр круга
  37.             Vector c=m[0];
  38.  
  39.             //Определим радиус круга
  40.             int l=m.Length;
  41.             double r=(m[l-1]-m[l-2]).mod();
  42.  
  43.             //Пройдемся по массиву, опеределяя лежит точка в круге или нет
  44.             int cnt=0;
  45.             for (int i=0; i<l; i++)
  46.                 if ((m[i]-c).mod()<=r)
  47.                     cnt++;
  48.  
  49.             Console.WriteLine("Внутри круга лежит {0} точек, с учетом центра",cnt);
  50.             Console.ReadLine();
  51.            
  52.         }
  53.     }
  54. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы