Example #1
0
        /// <summary>
        /// Метод нахождения произведения комплексных чисел
        /// </summary>
        /// <param name="x1"></param>
        /// <param name="x2"></param>
        /// <returns></returns>
        public static ComplexClass Multi(ComplexClass x1, ComplexClass x2)
        {
            ComplexClass x3 = new ComplexClass();

            x3.re = x1.re * x2.re - x1.im * x2.im;
            x3.im = x1.re * x2.im + x1.im * x2.re;

            return(x3);
        }
Example #2
0
        /// <summary>
        /// Метод нахождения разности комплексных чисел
        /// </summary>
        /// <param name="x1"></param>
        /// <param name="x2"></param>
        /// <returns></returns>
        public static ComplexClass Minus(ComplexClass x1, ComplexClass x2)
        {
            ComplexClass x3 = new ComplexClass();

            x3.re = x1.re - x2.re;
            x3.im = x1.im - x2.im;

            return(x3);
        }
Example #3
0
        static void Main()
        {
            #region Проверка работы структуры и класса
            //ComplexNumber z1 = new ComplexNumber(r: 1, i: 2);
            //ComplexNumber z2 = new ComplexNumber(i: -5, r: 3);

            //Console.WriteLine(z1.Print());
            //Console.WriteLine(z2.Print());
            //ComplexNumber resultSum = ComplexNumber.Sum(z1, z2);
            //Console.WriteLine(resultSum.Print());
            //ComplexNumber resultSub = ComplexNumber.Sub(z1, z2);
            //Console.WriteLine(resultSub.Print());

            //ComplexClass x1 = new ComplexClass(3, 8);
            //ComplexClass x2 = new ComplexClass(4, 11);

            //Console.WriteLine(x1.Print() + " - комплексное число 1 из класса");
            //Console.WriteLine(x2.Print() + " - комплексное число 2 из класса");
            //ComplexClass resultSubClass = ComplexClass.Sub(x1, x2);
            //Console.WriteLine(resultSubClass.Print() + " - разность комплексных чисел, созданных с помощью класса");
            //ComplexClass resultMultClass = ComplexClass.Mult(x1, x2);
            //Console.WriteLine(resultMultClass.Print() + " - умножение комплексных чисел, созданных с помощью класса");
            //ComplexClass resultSumClass = ComplexClass.Sum(x1, x2);
            //Console.WriteLine(resultSumClass.Print());

            #endregion

            Console.Write("Введите вещественную часть первого комплексного числа: ");
            double r1 = Convert.ToDouble(Console.ReadLine());
            Console.Write("Введите мнимую часть первого комплексного числа: ");
            double i1 = Convert.ToDouble(Console.ReadLine());
            Console.Write("Введите вещественную часть второго комплексного числа: ");
            double r2 = Convert.ToDouble(Console.ReadLine());
            Console.Write("Введите мнимую часть второго комплексного числа: ");
            double i2 = Convert.ToDouble(Console.ReadLine());

            ComplexClass number1 = new ComplexClass(r1, i1);
            ComplexClass number2 = new ComplexClass(r2, i2);


            Console.WriteLine($"Получившиеся комплексные числа: {number1.Print()} и {number2.Print()}." +
                              $" \nВведите пожалуйста номер действия, которое вы хотите с ними произвести:\n" +
                              $"1. Сложение\n" +
                              $"2. Вычитание\n" +
                              $"3. Умножение");

            int button = Convert.ToInt32(Console.ReadLine());


            switch (button)
            {
            case 1:
                ComplexClass resultSum = ComplexClass.Sum(number1, number2);
                Console.WriteLine($"Вы выбрали сложение. Результат:\n{resultSum.Print()}");
                break;

            case 2:
                ComplexClass resultSub = ComplexClass.Sub(number1, number2);
                Console.WriteLine($"Вы выбрали вычитание. Результат:\n{resultSub.Print()}");
                break;

            case 3:
                ComplexClass resultMult = ComplexClass.Mult(number1, number2);
                Console.WriteLine($"Вы выбрали вычитание. Результат:\n{resultMult.Print()}");
                break;

            default:
                Console.WriteLine("Такой команды нет.");
                break;
            }
        }
        /// <summary>
        /// Умножение комплексных чисел
        /// </summary>
        /// <param name="z1"></param>
        /// <param name="z2"></param>
        /// <returns></returns>
        public static ComplexClass Mult(ComplexClass z1, ComplexClass z2)
        {
            ComplexClass temp = new ComplexClass(((z1.a * z2.a) - (z1.b * z2.b)), ((z1.b * z2.a) + (z1.a * z2.b)));

            return(temp);
        }
        /// <summary>
        /// Вычитание комплексных чисел
        /// </summary>
        /// <param name="z1"></param>
        /// <param name="z2"></param>
        /// <returns></returns>
        public static ComplexClass Sub(ComplexClass z1, ComplexClass z2)
        {
            ComplexClass temp = new ComplexClass(z1.a - z2.a, z1.b - z2.b);

            return(temp);
        }
Example #6
0
        static void Main(string[] args)
        {
            Complex complex1;

            complex1.re = 10;
            complex1.im = 15;

            Complex complex2;

            complex2.re = 20;
            complex2.im = 25;

            Console.WriteLine($"Демонстрация работы структуры Complex с комплексными числами z1={complex1.Print()} и z2={complex2.Print()}");

            Complex result = Complex.Plus(complex1, complex2);

            Console.WriteLine($"Результат сложения: {result.Print()}");

            result = Complex.Minus(complex1, complex2);
            Console.WriteLine($"Результат вычитания: {result.Print()}");

            result = Complex.Multi(complex1, complex2);
            Console.WriteLine($"Результат произведения: {result.Print()}");

            // работа с class ComplexClass

            // Описали ссылку на объект.
            ComplexClass z1;

            // Создали объект и сохранили ссылку на него в z1.
            z1 = new ComplexClass(10, 15);
            // Описали объект и создали его.
            ComplexClass z2 = new ComplexClass(20, 10);

            Console.WriteLine();
            // С помощью свойства Im изменили внутреннее (приватное) поле im.
            z2.Im = 25;

            Console.WriteLine($"Демонстрация работы класса ComplexClass с комплексными числами z1={z1.PrintComplexClass()} и z2={z2.PrintComplexClass()}");
            // Создали ссылку на объект.
            ComplexClass r;

            // Так как в методе Plus создается новый объект,
            // в r сохраняем ссылку на вновь созданный объект.
            Console.WriteLine("Для сложения нажмите - 1, для произведения нажмите - 2, для вычитания нажмите - 3, для выхода нажмите Enter");

            bool flag;

            do
            {
                flag = int.TryParse(Console.ReadLine(), out int key);
                switch (key)
                {
                case 1:
                    r = ComplexClass.Plus(z1, z2);
                    Console.WriteLine(r.PrintComplexClass());
                    break;

                case 2:
                    r = ComplexClass.Multi(z1, z2);
                    Console.WriteLine(r.PrintComplexClass());
                    break;

                case 3:
                    r = ComplexClass.Minus(z1, z2);
                    Console.WriteLine(r.PrintComplexClass());
                    break;

                default:
                    Console.WriteLine("Неизвестный выбор. Повторите попытку.");
                    break;
                }
            } while (flag);
        }