Обращение к переменной объекта в списке - C#
Формулировка задачи:
Добрый день. Помогите разобраться с задачей:
Пользователь вводит некое n ( >= 2), которое задаст количество окружностей на плоскости. Далее программа просит ввести данные о местоположении окружностей на плоскости и их радиусы (3 числа для каждой окружности: координаты x и y, и радиус)
Необходимо из всех окружностей найти две, у которых расстояние между их центрами минимально относительно всех возможных пар окружностей. В качестве ответа вывести 2 строки в формате:
S1={0}; X1={1}, Y1={2}
S2={0}; X2={1}, Y2={2}
где S1 и S2 площади полученных окружностей, а X1, Y1 и X2, Y2 - их координаты.
Начал писать, но не понимаю как обращаться к Х и Y в списке. Т.е. список заполнен объектами, теперь мне нужно по формуле D = √(х2-х1)2+(y2-y1)2 найти две окружности с наименьшим расстоянием друг от друга и вывести ответ в нужном формате. Заранее спасибо за помощь
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _1.Окружности { public class Circle { public int x; public int y; public int r; public Circle(int x, int y, int r) { this.x = x; this.y = y; this.r = r; } } class Program { static void Main(string[] args) { Console.WriteLine("Введите желаемое количиство окружностей (n >= 2):"); string quantityCircle = Console.ReadLine(); int n = int.Parse(quantityCircle); if (n < 2) { return; } List<Circle> circle = new List<Circle>(); for (int i = 0; i < n; i++) { Console.WriteLine("Введите координату Х:"); string coordinateX = Console.ReadLine(); int x = int.Parse(coordinateX); Console.WriteLine("Введите координату Y:"); string coordinateY = Console.ReadLine(); int y = int.Parse(coordinateY); Console.WriteLine("Введите радиус окружности:"); string radiusR = Console.ReadLine(); int r = int.Parse(radiusR); circle.Add(new Circle(x, y, r)); } Console.ReadKey(); } } }
Решение задачи: «Обращение к переменной объекта в списке»
textual
Листинг программы
public double DistanceTo(Circle circle) { return Math.Sqrt(Math.Pow(this.x - circle.x, 2) + Math.Pow(this.y - circle.y, 2)); } public double Square { get { return Math.PI * r * r; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д