Обращение к переменной объекта в списке - 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; }
}

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


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

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

14   голосов , оценка 4.143 из 5
Похожие ответы