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); }
private static void Main() { var exit = false; do { Console.Clear(); var userChoice = UtilsCommon.ShowMainMenu(); // Отображаем главное меню switch (userChoice) { case UtilsCommon.Choice.Task1: Task1.DoTask(); break; case UtilsCommon.Choice.Task2: Task2.DoTask(); break; case UtilsCommon.Choice.Task31: Task3.DoTask(); break; case UtilsCommon.Choice.Task32: Task4.DoTask(); break; case UtilsCommon.Choice.Task33: Task5.DoTask(); break; case UtilsCommon.Choice.Exit: exit = true; break; case UtilsCommon.Choice.None: break; default: throw new ArgumentOutOfRangeException(); } Console.ReadKey(); } while (!exit); }
public static void DoTask() { // Задание 2. // 1. Создать метод, принимающий текст и возвращающий слово, содержащее минимальное количество букв // 2.* Создать метод, принимающий текст и возвращающий слово(слова) с максимальным количеством букв // Примечание: слова в тексте могут быть разделены символами (пробелом, точкой, запятой) // Пример: Текст: "A ББ ВВВ ГГГГ ДДДД ДД ЕЕ ЖЖ ЗЗЗ" // 1. Ответ: А // 2. ГГГГ, ДДДД Console.Clear(); UtilsCommon.WriteOnCenter("Выполняем задачу 2"); var text = UtilsCommon.ReadStringParameter("1. Введите текст:"); var shortestWord = UtilsString.GetShortestWord(text); var arrayLongestWords = UtilsString.GetLongestWords(text); Console.WriteLine($"1. Ответ: {shortestWord}"); Console.WriteLine($"2. {string.Join(", ", arrayLongestWords)}"); }
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 ? "Да":"Нет")}"); }