Загрузка данных


using System;

namespace VectorTask
{
    // Класс, описывающий двумерный вектор
    class Vector2D
    {
        // Поля X и Y
        public int X;
        public int Y;

        // Конструктор для инициализации координат
        public Vector2D(int x, int y)
        {
            X = x;
            Y = y;
        }

        // 1. Оператор + : Сложение двух векторов
        public static Vector2D operator +(Vector2D a, Vector2D b)
        {
            return new Vector2D(a.X + b.X, a.Y + b.Y);
        }

        // 2. Оператор - : Вычитание одного вектора из другого
        public static Vector2D operator -(Vector2D a, Vector2D b)
        {
            return new Vector2D(a.X - b.X, a.Y - b.Y);
        }

        // 3. Оператор * : Умножение вектора на число (скаляр)
        public static Vector2D operator *(Vector2D a, int k)
        {
            return new Vector2D(a.X * k, a.Y * k);
        }

        // 4. Оператор == : Проверка равенства векторов
        public static bool operator ==(Vector2D a, Vector2D b)
        {
            // Проверка на идентичность координат
            return a.X == b.X && a.Y == b.Y;
        }

        // Оператор != : Проверка неравенства (обязателен в паре с ==)
        public static bool operator !=(Vector2D a, Vector2D b)
        {
            return !(a == b);
        }

        // Метод вывода вектора
        public void Print()
        {
            Console.WriteLine($"({X}, {Y})");
        }
    }

    class Program
    {
        static void Main()
        {
            // Инициализация векторов согласно примеру
            Vector2D A = new Vector2D(3, 4);
            Vector2D B = new Vector2D(1, 2);

            Console.Write("Вектор A: "); A.Print();
            Console.Write("Вектор B: "); B.Print();
            Console.WriteLine();

            // Демонстрация работы операторов
            Vector2D sum = A + B;
            Console.Write("A + B = "); sum.Print(); // Ожидается (4, 6)

            Vector2D diff = A - B;
            Console.Write("A - B = "); diff.Print(); // Ожидается (2, 2)

            Vector2D mult = A * 2;
            Console.Write("A * 2 = "); mult.Print(); // Ожидается (6, 8)

            bool isEqual = (A == B);
            Console.WriteLine($"A == B -> {isEqual}"); // Ожидается False
            
            // Чтобы консоль не закрылась сразу
            Console.ReadKey();
        }
    }
}