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}"); }
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); }
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 ? "Да":"Нет")}"); }