Exemple #1
0
        //Задание 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());
        }
Exemple #2
0
        public ComplexClass Subtract(ComplexClass x)
        {
            ComplexClass y = new ComplexClass();

            y.im = im - x.im;
            y.re = re - x.re;
            return(y);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        public ComplexClass Plus(ComplexClass x)
        {
            ComplexClass y = new ComplexClass();

            y.im = im + x.im;
            y.re = re + x.re;
            return(y);
        }
Exemple #5
0
            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);
            }
Exemple #6
0
            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);
            }
Exemple #7
0
        //метод вычитания
        public ComplexClass Minus(ComplexClass x2)
        {
            ComplexClass x3 = new ComplexClass();

            x3.im = this.im - x2.im;
            x3.re = this.re - x2.re;
            return(x3);
        }
Exemple #8
0
        //  метод произведения
        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);
        }
Exemple #9
0
        // метод сложения
        public ComplexClass Plus(ComplexClass x2)
        {
            ComplexClass x3 = new ComplexClass();

            x3.im = x2.im + this.im;
            x3.re = x2.re + this.re;
            return(x3);
        }
Exemple #10
0
        /// <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()}");
        }
Exemple #11
0
        /// <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);
        }
Exemple #12
0
        /// <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);
        }
Exemple #13
0
        /// <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);
        }
Exemple #14
0
        //Задание 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;
            }
        }
Exemple #15
0
        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();
        }
Exemple #16
0
        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());
        }