コード例 #1
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);
        }
コード例 #2
0
        public ComplexClass Plus(ComplexClass x2)
        {
            ComplexClass x3 = new ComplexClass();

            x3.im = x2.im + im;
            x3.re = x2.re + re;
            return(x3);
        }
コード例 #3
0
        public ComplexClass Minus(ComplexClass x2)
        {
            ComplexClass x3 = new ComplexClass();

            x3.im = im - x2.im;
            x3.re = re - x2.re;
            return(x3);
        }
コード例 #4
0
        static void Main(string[] args)
        {
            Console.InputEncoding  = Encoding.Unicode;
            Console.OutputEncoding = Encoding.Unicode;

            Complex complex1;

            complex1.re = 1;
            complex1.im = 1;

            Complex complex2;

            complex2.re = 2;
            complex2.im = 2;

            /*            complex result = complex1.plus(complex2);
             *          console.writeline(result.tostring());
             *          result = complex1.minus(complex2);
             *          console.writeline(result.tostring());
             *          result = complex1.multi(complex2);
             *          console.writeline(result.tostring());*/


            #region 1. Konstantin Konovalov
            // а) Дописать структуру Complex, добавив метод вычитания комплексных чисел.Продемонстрировать работу структуры.
            // б) Дописать класс Complex, добавив методы вычитания и произведения чисел.Проверить работу класса.
            // в) Добавить диалог с использованием switch демонстрирующий работу класса.

            Console.WriteLine("\nПрограмма, демонстрирующая функционал структуры и класса для работы с комплексными числами.\n");
            double   re1 = 0.0, im1 = 0.0, re2 = 0.0, im2 = 0.0;
            string[] parts = new string[4];
            do
            {
                Console.Write("Введите два комплексных числа в формате Re1,Im1,Re2,Im2 (напр.: 1,-1,3,7): ");
                parts = Console.ReadLine().Split(',');
            }while (!(double.TryParse(parts[0].Trim(), out re1) &&
                      double.TryParse(parts[1].Trim(), out im1) &&
                      double.TryParse(parts[2].Trim(), out re2) &&
                      double.TryParse(parts[3].Trim(), out im2))
                    );

            var num1 = new ComplexClass(im1, re1);
            var num2 = new ComplexClass(im2, re2);

            Console.Write("\nВы ввели два комплексных числа " + num1);
            Console.WriteLine(" и " + num2 + "\n");

            int  caseSwitch;
            var  options = new[] { 1, 2, 3 };
            bool flag;
            do
            {
                Console.Write("\nВведите\n\t 1 для сложения введённых чисел,\n\t " +
                              "2 для вычитания введённых чисел,\n\t " +
                              "3 для умножения введённых чисел,\n\t " +
                              "число отличное от 1, 2 и 3 для выхода: ");
                flag = int.TryParse(Console.ReadLine(), out caseSwitch);
                switch (caseSwitch)
                {
                case 1:
                    Console.WriteLine($"\nРезультат сложения: {num1.Plus(num2)}");
                    break;

                case 2:
                    Console.WriteLine($"\nРезультат вычитания: {num1.Minus(num2)}");
                    break;

                case 3:
                    Console.WriteLine($"\nРезультат умножения: {num1.Multi(num2)}");
                    break;

                default:
                    Console.WriteLine("\nВыход из программы...");
                    break;
                }
            }while (!flag || options.Contains(caseSwitch));
            #endregion

            #region 2. Konstantin Konovalov
            // С клавиатуры вводятся числа, пока не будет введён 0 (каждое число в новой строке).
            // Требуется подсчитать сумму всех нечётных положительных чисел.
            // Сами числа и сумму вывести на экран, используя tryParse.
            int        input;
            List <int> elements = new List <int>();
            bool       flagB;
            Console.WriteLine("\nПрограмма подсчёта суммы нечётных положительных чисел, введённых пользователем.\n");
            do
            {
                Console.Write("Введите целое число, для выхода введите 0: ");
                flagB = int.TryParse(Console.ReadLine(), out input);
                if (flag && input > 0 && input % 2 == 1)
                {
                    elements.Add(input);
                }
            }while (input != 0 || !flagB);
            if (elements.Count > 0)
            {
                Console.WriteLine("\nНечётные положительные числа, введённые пользователем:");
                input = 0;
                foreach (var e in elements)
                {
                    Console.WriteLine($"{e}");
                    input += e;
                }
                Console.WriteLine($"\nСумма нечётных положительных чисел, введённых пользователем: {input}");
            }

            #endregion

            #region 3. Konstantin Konovalov
            // *Описать класс дробей — рациональных чисел, являющихся отношением двух целых чисел.
            // *Предусмотреть методы сложения, вычитания, умножения и деления дробей.
            // *Написать программу, демонстрирующую все разработанные элементы класса.
            // *Добавить свойства типа int для доступа к числителю и знаменателю;
            // *Добавить свойство типа double только на чтение, чтобы получить десятичную дробь числа;
            // **Добавить проверку, чтобы знаменатель не равнялся 0.
            // **Выбрасывать исключение ArgumentException("Знаменатель не может быть равен 0");
            // ***Добавить упрощение дробей.


            // НЕ УСПЕЛ ДОДЕЛАТЬ И ОПТИМИЗИРОВАТЬ !!!
            Console.WriteLine("\nПрограмма работы с дробями.\n");

            var f1 = new Fraction(1, 6);
            var f2 = new Fraction(1, 6);
            var f  = f1.Plus(f2);
            Console.WriteLine(f);
            f = f1.Minus(f2);
            Console.WriteLine(f);
            f = f1.Multi(f2);
            Console.WriteLine(f);
            f = f1.Divide(f2);
            Console.WriteLine(f);

            #endregion

            Console.WriteLine("\nДля выхода нажмите любую клавишу...");
            Console.ReadKey();
        }