//Задание 1: //б) Дописать класс Complex, добавив методы вычитания и произведения чисел.Проверить работу класса. public static void FirstTaskB() { // вводим первое комплексное число ComplexClass complex1 = new ComplexClass(); Console.WriteLine("Введите действительную часть первого комплексного числа"); complex1.re = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Введите мнимую часть первого комплексного числа"); complex1.im = Convert.ToDouble(Console.ReadLine()); // вводим второе комплексное число ComplexClass complex2 = new ComplexClass(); Console.WriteLine("Введите действительную часть второго комплексного числа"); complex2.re = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Введите мнимую часть второго комплексного числа"); complex2.im = Convert.ToDouble(Console.ReadLine()); // демонстрируем метод вычитания ComplexClass result = complex1.Minus(complex2); Console.WriteLine(result.ToString()); // демонстрируем метод умножения result = complex1.Multi(complex2); Console.WriteLine(result.ToString()); }
public ComplexClass Subtract(ComplexClass x) { ComplexClass y = new ComplexClass(); y.im = im - x.im; y.re = re - x.re; return(y); }
public ComplexClass Multi(ComplexClass x) { ComplexClass y = new ComplexClass(); y.im = re * x.im + im * x.re; y.re = re * x.re - im * x.im; return(y); }
public ComplexClass Plus(ComplexClass x) { ComplexClass y = new ComplexClass(); y.im = im + x.im; y.re = re + x.re; return(y); }
public static ComplexClass Mul(ComplexClass x, ComplexClass y) { ComplexClass temp = new ComplexClass(); temp.a = (x.a * y.a) - (x.b * y.b); temp.b = (x.a * y.b) - (x.b * y.a); return(temp); }
public static ComplexClass Sub(ComplexClass x, ComplexClass y) { ComplexClass temp = new ComplexClass(); temp.a = x.a - y.a; temp.b = x.b - y.b; return(temp); }
//метод вычитания public ComplexClass Minus(ComplexClass x2) { ComplexClass x3 = new ComplexClass(); x3.im = this.im - x2.im; x3.re = this.re - x2.re; return(x3); }
// метод произведения public ComplexClass Multi(ComplexClass x2) { ComplexClass x3 = new ComplexClass(); x3.im = re * x2.im + im * x2.re; x3.re = re * x2.re - im * x2.im; return(x3); }
// метод сложения public ComplexClass Plus(ComplexClass x2) { ComplexClass x3 = new ComplexClass(); x3.im = x2.im + this.im; x3.re = x2.re + this.re; return(x3); }
/// <summary> /// а) Дописать структуру Complex, добавив метод вычитания комплексных чисел. Продемонстрировать работу структуры; /// /// б) Дописать класс Complex, добавив методы вычитания и произведения чисел.Проверить работу класса; /// </summary> static void Task1() { //Clear console and print info regarding current task SupportMethods.PrepareConsoleForHomeTask("a) Дописать структуру Complex, добавив метод вычитания комплексных чисел. Продемонстрировать работу структуры;\n" + "б) Дописать класс Complex, добавив методы вычитания и произведения чисел. Проверить работу класса;"); //Блок для работы со структурой // z = 1 + 1i Complex complex1; complex1.re = 1; complex1.im = 1; // z = 2 + 2i Complex complex2; complex2.re = 2; complex2.im = 2; // (1 + 1i) + (2 + 2i) Complex resultPlus = complex1.Plus(complex2); // (1 + 1i) - (2 + 2i) Complex resultMinus = complex1.Minus(complex2); // (1 + 1i) * (2 + 2i) Complex resultMultiply = complex1.Multi(complex2); //Конец блока для работы со структурой //Блок для работы с классом ComplexClass complex11 = new ComplexClass(); complex11.re = 1; complex11.im = 1; ComplexClass complex22 = new ComplexClass(); complex22.re = 2; complex22.im = 2; // (1 + 1i) + (2 + 2i) ComplexClass resultClassPlus = complex11.Plus(complex22); // (1 + 1i) - (2 + 2i) ComplexClass resultClassMinus = complex11.Minus(complex22); // (1 + 1i) * (2 + 2i) ComplexClass resultClassMultiply = complex11.Multi(complex22); //Конец блока для работы с классом //Вывод результата структуры и комплекса: SupportMethods.Pause("Работа структуры:\n" + $"Сложение комплексных чисел структура: {resultPlus.ToString()}; класс: {resultClassPlus.ToString()}\n" + $"Вычитание косплексных чисел структура: {resultMinus.ToString()}; класс: {resultClassMinus.ToString()}\n" + $"Умножение косплексных чисел структура: {resultMultiply.ToString()}; класс: {resultClassMultiply.ToString()}"); }
/// <summary> /// Умножение комплексных чисел /// </summary> /// <param name="x"></param> /// <returns></returns> public ComplexClass Multi(ComplexClass x) { ComplexClass y = new ComplexClass(); //(a + bi) * (c + di) = (ac - bd) + (bc + ad)i //a = this.re //b = this.im //c = x.re //d = x.im y.re = this.re * x.re - this.im * x.im; y.im = this.im * x.re + this.re * x.im; return(y); }
/// <summary> /// Разность комплексных чисел /// </summary> /// <param name="x"></param> /// <returns></returns> public ComplexClass Minus(ComplexClass x) { ComplexClass y = new ComplexClass(); //(a + bi) - (c + di) = (a - c) + (b - d)i //a = this.re //b = this.im //c = x.re //d = x.im y.re = this.re - x.re; y.im = this.im - x.im; return(y); }
/// <summary> /// Сумма комплексных чисел /// </summary> /// <param name="x"></param> /// <returns></returns> public ComplexClass Plus(ComplexClass x) { ComplexClass y = new ComplexClass(); //(a + bi) + (c + di) = (a + c) + (b + d)i //a = this.re //b = this.im //c = x.re //d = x.im y.re = this.re + x.re; y.im = this.im + x.im; return(y); }
//Задание 1: //в) Добавить диалог с использованием switch демонстрирующий работу класса. public static void FirstTaskС() { // вводим первое комплексное число ComplexClass complex1 = new ComplexClass(); Console.WriteLine("Введите действительную часть первого комплексного числа"); complex1.re = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Введите мнимую часть первого комплексного числа"); complex1.im = Convert.ToDouble(Console.ReadLine()); // вводим второе комплексное число ComplexClass complex2 = new ComplexClass(); Console.WriteLine("Введите действительную часть второго комплексного числа"); complex2.re = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Введите мнимую часть второго комплексного числа"); complex2.im = Convert.ToDouble(Console.ReadLine()); // узнаем какой метод вызвать у пользователя Console.WriteLine("Какое действие вы хотите выполнить?(+,-,*)"); string userTask = (Console.ReadLine()); // вызываем нужный метод switch (userTask) { case "-": ComplexClass result = complex1.Minus(complex2); Console.WriteLine(result.ToString()); break; case "+": result = complex1.Plus(complex2); Console.WriteLine(result.ToString()); break; case "*": result = complex1.Multi(complex2); Console.WriteLine(result.ToString()); break; } }
static void Main(string[] args) { Console.WriteLine("Программа демонстрации работы методов с комплексными числами."); byte way = 1; bool wayResult = false; while (true) { Console.WriteLine("\nВыберите способ работы программы:\n\t1 - Использовать класс\n\t2 - Использовать структуру"); Console.Write("\nВвод: "); wayResult = Byte.TryParse(Console.ReadLine(), out way); if (wayResult && (way == 1 || way == 2)) { break; } else { Console.WriteLine("Ошибка ввода!"); continue; } } Console.WriteLine(); switch (way) { case 1: Console.WriteLine("\nВычисление, используя класс."); ComplexClass complex1 = new ComplexClass(); complex1.re = 4; complex1.im = 4; ComplexClass complex2 = new ComplexClass(); complex2.re = 2; complex2.im = 2; ComplexClass result = complex1.Plus(complex2); Console.WriteLine(result.ToString()); result = complex1.Multi(complex2); Console.WriteLine(result.ToString()); result = complex1.Subtract(complex2); Console.WriteLine(result.ToString()); break; case 2: Console.WriteLine("\nВычисление, используя структуру."); Complex complex_1; complex_1.re = 4; complex_1.im = 4; Complex complex_2; complex_2.re = 2; complex_2.im = 2; Complex result2 = complex_1.Plus(complex_2); Console.WriteLine(result2.ToString()); result2 = complex_1.Multi(complex_2); Console.WriteLine(result2.ToString()); result2 = complex_1.Subtract(complex_2); Console.WriteLine(result2.ToString()); break; } Console.ReadKey(); }
static void Main(string[] args) { Console.WriteLine("Struct:"); Complex x1 = new Complex(4, 5); Console.WriteLine(x1.Print()); Complex x2 = new Complex(2, -5); Console.WriteLine(x2.Print()); Console.WriteLine(); Console.WriteLine("Class:"); ComplexClass y1 = new ComplexClass(3, 1); Console.WriteLine(y1.Print()); ComplexClass y2 = new ComplexClass(8, -9); Console.WriteLine(y2.Print()); Console.WriteLine(); Console.WriteLine("Enter sub if you want to substruct this numbers, mul to multiply:"); string command = Console.ReadLine(); switch (command) { case "sub": Console.WriteLine("Substruct:"); Console.WriteLine("Struct:"); Complex res1 = Complex.Sub(x1, x2); Console.WriteLine(res1.Print()); Console.WriteLine("Class:"); ComplexClass result1 = ComplexClass.Sub(y1, y2); Console.WriteLine(result1.Print()); break; case "mul": Console.WriteLine("Multiply:"); Console.WriteLine("Struct:"); ComplexClass result = ComplexClass.Mul(y1, y2); Console.WriteLine(result.Print()); Console.WriteLine("Class:"); ComplexClass result2 = ComplexClass.Mul(y1, y2); Console.WriteLine(result2.Print()); break; default: Console.WriteLine("Incorrect command"); break; } Console.WriteLine("Enter numbers or 0 to exit:"); int number = 1; bool success = false; int res = 0; while (number != 0) { success = int.TryParse(Console.ReadLine(), out number); if (success) { res += number; } else { number = 1; } } Console.WriteLine("Result:" + res.ToString()); Console.WriteLine(); Console.WriteLine("Fraction:"); Fraction f1 = new Fraction(1, 2); Console.WriteLine(f1.Print()); Fraction f2 = new Fraction(2, 4); Console.WriteLine(f2.Print()); Console.WriteLine("Sum:"); Fraction resultf1 = Fraction.Sum(f1, f2); Console.WriteLine(resultf1.Print()); Console.WriteLine("Sub:"); Fraction resultf2 = Fraction.Sub(f1, f2); Console.WriteLine(resultf2.Print()); Console.WriteLine("Mul:"); Fraction resultf3 = Fraction.Mul(f1, f2); Console.WriteLine(resultf3.Print()); Console.WriteLine("Div:"); Fraction resultf4 = Fraction.Div(f1, f2); Console.WriteLine(resultf4.Print()); }