Ushbu maqolada C# dasturlash tilida nuqtalar (Point) va doiralar (Circle) bilan qanday ishlashni o‘rganamiz. Biz quyidagilarni amalga oshiramiz:
• Ikki nuqta orasidagi masofani hisoblaymiz.
• Nuqta doira ichida joylashganligini tekshiramiz.

1. Point (Nuqta) Struktura
X va Y koordinatalariga ega bo‘lgan struct dan foydalanamiz.

public struct Point
{
    public int X { get; set; }
    public int Y { get; set; }
}

Tushuntirish
X va Y – nuqtaning koordinatalari.

public struct Point
{
    public int X { get; set; }
    public int Y { get; set; }

    public Point(string? input)
    {
        var inputArray = input.Split(' ');
        X = int.Parse(inputArray[0]);
        Y = int.Parse(inputArray[1]);
    }
}

Point(string? input) foydalanuvchi kiritgan ma'lumotni ("3 4") ikkita X va Y qiymatiga ajratadi.

public double DistanceTo(Point other)
    {
        var cSquare = Math.Pow(X - other.X, 2) + Math.Pow(Y - other.Y, 2);
        return Math.Sqrt(cSquare);
    }

1️⃣Ikki nuqta orasidagi farqni topamiz:

(X - other.X) → X koordinatalar farqi
(Y - other.Y) → Y koordinatalar farqi
DistanceTo(Point other) – ikki nuqta orasidagi masofani hisoblaydi.
2️⃣ Kvadratlarni qo‘shamiz:

Image description

Bu Pifagor teoremasiga asoslangan.

Misol: DistanceTo qanday ishlaydi?
Agar ikkita nuqta shunday bo‘lsa:
📌 a(3,4)
📌 b(6,8)
✅ Hisoblash:

Image description

💡 Natija: 5 birlik masofa.
3️⃣ Kvadrat ildizni hisoblaymiz:

Image description

Bu ikkita nuqta orasidagi masofa bo‘ladi.

2. Circle (Doira) Strukturasi

Endi doirani ifodalash uchun Point markazi (Center) va Radius dan foydalanamiz.

public struct Circle
{
    public Point Center { get; set; }
    public int Radius { get; set; }

    public bool Includes(Point point)
    {
        var distance = point.DistanceTo(Center);
        return distance < Radius;
    }
}

Center – doiraning markazi.
Radius – doiraning radiusi.
Includes(Point point) – berilgan nuqta doiraning ichida yoki yo‘qligini tekshiradi.
Circle struktura markaz (nuqta) va radius dan iborat. Includes metodi esa berilgan nuqta doira ichida yoki yo‘qligini tekshiradi.

1️⃣ Nuqta va doira markazi orasidagi masofa topiladi:

var distance = point.DistanceTo(Center);

2️⃣ Agar masofa radiusdan kichik bo‘lsa, nuqta doira ichida bo‘ladi:

return distance < Radius;

Misol: Includes qanday ishlaydi?
📌 Doira markazi: (0,0)
📌 Radius: 5
📌 Tekshirilayotgan nuqta: (3,4)

✅ Hisoblash:

Image description

💡 Natija:

• 5 < 5 emas → Nuqta doira ichida emas (false).

3. Asosiy Dastur (program.cs)
Endi ikkita nuqta orasidagi masofani hisoblash uchun asosiy dastur yozamiz:

var a = new Point(Console.ReadLine());
var b = new Point(Console.ReadLine());

Console.WriteLine(a.DistanceTo(b));

1️⃣ Foydalanuvchi ikkita nuqta koordinatalarini kiritadi.
2️⃣ DistanceTo metodi ikki nuqta orasidagi masofani hisoblaydi va ekranga chiqaradi.
✅ Misol:
📌 Kirish:

3 4
6 8

📌 Chiqish:

5

Xulosa

✅ Point struktura nuqtalarni ifodalaydi va ularning orasidagi masofani hisoblaydi.
✅ Circle struktura doira yaratish va nuqta doiraning ichida yoki tashqarisida ekanligini tekshirish imkonini beradi.
✅ program.cs orqali ikkita nuqta orasidagi masofani hisoblaymiz.