/// <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); }
/// <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); }
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); }
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); }