Exemplo n.º 1
0
        public static void DoTask()
        {
            // *Задание 5
            // Вычислить, используя рекурсию, функцию Аккермана:
            // A(2, 5), A(1, 2)
            // A(n, m) = m + 1, если n = 0,
            //         = A(n - 1, 1), если n <> 0, m = 0,
            //         = A(n - 1, A(n, m - 1)), если n> 0, m > 0.

            Console.Clear();
            UtilsCommon.WriteOnCenter("Выполняем задачу 5");
            var n   = UtilsCommon.ReadIntParameter("Введите первое число");
            var m   = UtilsCommon.ReadIntParameter("Введите второе число");
            var res = UtilsMath.AccermanFunction((ulong)n, (ulong)m);

            Console.WriteLine($"Ответ:{res}");
        }
Exemplo n.º 2
0
        public static void DoTask()
        {
            // Задание 1.
            // Воспользовавшись решением задания 3 четвертого модуля
            // 1.1. Создать метод, принимающий число и матрицу, возвращающий матрицу умноженную на число
            // 1.2. Создать метод, принимающий две матрицу, возвращающий их сумму
            // 1.3. Создать метод, принимающий две матрицу, возвращающий их произведение

            Console.Clear();
            UtilsCommon.WriteOnCenter("Выполняем задачу 1");
            UtilsCommon.WriteOnCenter("");
            UtilsCommon.WriteOnCenter("Умножение матрицы на число");
            UtilsCommon.WriteOnCenter("");
            var n         = UtilsCommon.ReadIntParameter("Введите количество строк матрицы:");
            var m         = UtilsCommon.ReadIntParameter("Введите количество столбцов матрицы:");
            var k         = UtilsCommon.ReadIntParameter("Введите число, на которое нужно умножить матрицу:");
            var matrix    = UtilsArray.GetRandomIntMatrix(n, m, 0, 50);
            var resMatrix = UtilsArray.MultiplyMatrixByNumber(matrix, k);

            OutputMultiplyMatrixByNumberResult(k, matrix, resMatrix);

            UtilsCommon.WriteOnCenter("");
            UtilsCommon.WriteOnCenter("Сложение двух матриц");
            UtilsCommon.WriteOnCenter("");
            n = UtilsCommon.ReadIntParameter("Введите количество строк матрицы:");
            m = UtilsCommon.ReadIntParameter("Введите количество столбцов матрицы:");
            var matrix1 = UtilsArray.GetRandomIntMatrix(n, m, 0, 50);
            var matrix2 = UtilsArray.GetRandomIntMatrix(n, m, 0, 50);

            resMatrix = UtilsArray.SummationMatrix(matrix1, matrix2, UtilsArray.MatrixOperation.Plus);
            OutputSummationMatrixResult(matrix1, matrix2, resMatrix);

            UtilsCommon.WriteOnCenter("");
            UtilsCommon.WriteOnCenter("Умножение двух матриц");
            UtilsCommon.WriteOnCenter("");
            var n1 = UtilsCommon.ReadIntParameter("Введите количество строк 1й матрицы:");
            var m1 = UtilsCommon.ReadIntParameter("Введите количество столбцов 1й матрицы:");
            var n2 = m1;
            var m2 = UtilsCommon.ReadIntParameter("Введите количество столбцов 2й матрицы:");

            matrix1   = UtilsArray.GetRandomIntMatrix(n1, m1, 0, 50);
            matrix2   = UtilsArray.GetRandomIntMatrix(n2, m2, 0, 50);
            resMatrix = UtilsArray.MatrixMultiplication(matrix1, matrix2);
            OutputMatrixMultiplicationResult(matrix1, matrix2, resMatrix);
        }
Exemplo n.º 3
0
        public static void DoTask()
        {
            // Задание 4. Написать метод принимающий некоторое количесво чисел, выяснить
            // является заданная последовательность элементами арифметической или геометрической прогрессии
            //
            // Примечание
            //             http://ru.wikipedia.org/wiki/Арифметическая_прогрессия
            //             http://ru.wikipedia.org/wiki/Геометрическая_прогрессия

            Console.Clear();
            UtilsCommon.WriteOnCenter("Выполняем задачу 4");
            var n      = UtilsCommon.ReadIntParameter("Введите количество элементов последовательности");
            var arrInt = new int[n];

            for (int i = 0; i < n; i++)
            {
                arrInt[i] = UtilsCommon.ReadIntParameter($"Введите {(i + 1)}й элемент последовательности");
            }

            var resProgression = UtilsMath.IsProgression(arrInt);

            Console.WriteLine($"Данная последовательность является арифметической: {(resProgression.isArithmetic ? "Да":"Нет")}");
            Console.WriteLine($"Данная последовательность является геометрической: {(resProgression.isGeometric ? "Да":"Нет")}");
        }