/// <summary> /// Subroutine to demonstrate Task5 /// *Задание 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. /// </summary> internal static void Task5() { Console.WriteLine("\n. Задание 5. Вычислить, используя рекурсию, функцию Аккермана: A(2, 5), A(1, 2)"); Console.WriteLine($"\nAckermann Function for m = 2 and n = 5 equals: {Progressions.AckermannFunction(2, 5)}"); Console.WriteLine($"\nAckermann Function for m = 1 and n = 2 equals: {Progressions.AckermannFunction(1, 2)}"); Console.WriteLine("\nPress any key to continue."); Console.ReadKey(); }
/// <summary> /// Subroutine to demonstrate Task4 /// Задание 4. Написание метода, определяющего, является ли последовательность чисел прогрессией /// Создан метод, который принимает массив чисел как параметр. /// Метод определяет, являются ли числа в массиве арифметической или геометрической прогрессией или массив не содержит прогрессии. /// Метод возвращает результат в виде строки или перечисления. /// </summary> internal static void Task4() { Console.WriteLine("\n4. Задание 4. Написание метода, определяющего, является ли последовательность чисел прогрессией" + "\nСоздан метод, который принимает массив чисел как параметр." + "\nМетод определяет, являются ли числа в массиве арифметической или геометрической прогрессией или массив не содержит прогрессии." + "\nМетод возвращает результат в виде строки или перечисления."); ushort numberOfElements = 6; double differenceOrCommonRatio = -3.5d; double first = -5d; double[] arithmetic = Progressions.GenerateArithmeticProgression(first, differenceOrCommonRatio, numberOfElements); double[] geometric = Progressions.GenerateGeometricProgression(first, differenceOrCommonRatio, numberOfElements); double[] oneElementZero = { 0 }; double[] oneElementNotZero = { 5.5 }; double[] twoElementsZero = { 0, 0 }; double[] twoElementNotZero = { 5.5, 5.5 }; double[] threeElementsNonZero = { 0, 1, 2 }; double[] fourElementsNotZero = { -1, 3, -9, 27 }; double[] fiveRandomElements = { -1, 68, 32.784, 23423, -2521.2352 }; Progressions.PrintProgression(arithmetic, $"\nThe first {numberOfElements} elements of Arithmetic Progression with a1 = {first} and difference = {differenceOrCommonRatio}"); Console.WriteLine($"\nThis progression is { (Progressions.Sequence)Progressions.IsProgression(arithmetic) }"); Progressions.PrintProgression(geometric, $"\nThe first {numberOfElements} elements of Geometric Progression with a1 = {first} and common ratio = {differenceOrCommonRatio}"); Console.WriteLine($"\nThis progression is { (Progressions.Sequence)Progressions.IsProgression(geometric) }"); Progressions.PrintProgression(oneElementZero, $"\nThe first {oneElementZero.Length} element(s) of a sequence with a1 = {oneElementZero[0]}"); Console.WriteLine($"\nThis progression is { (Progressions.Sequence)Progressions.IsProgression(oneElementZero) }"); Progressions.PrintProgression(oneElementNotZero, $"\nThe first {oneElementNotZero.Length} element(s) of a sequence with a1 = {oneElementNotZero[0]}"); Console.WriteLine($"\nThis progression is { (Progressions.Sequence)Progressions.IsProgression(oneElementNotZero) }"); Progressions.PrintProgression(twoElementsZero, $"\nThe first {twoElementsZero.Length} element(s) of a sequence with a1 = {twoElementsZero[0]}"); Console.WriteLine($"\nThis progression is { (Progressions.Sequence)Progressions.IsProgression(twoElementsZero) }"); Progressions.PrintProgression(twoElementNotZero, $"\nThe first {twoElementNotZero.Length} element(s) of a sequence with a1 = {twoElementNotZero[0]}"); Console.WriteLine($"\nThis progression is { (Progressions.Sequence)Progressions.IsProgression(twoElementNotZero) }"); Progressions.PrintProgression(threeElementsNonZero, $"\nThe first {threeElementsNonZero.Length} element(s) of a sequence with a1 = {threeElementsNonZero[0]}"); Console.WriteLine($"\nThis progression is { (Progressions.Sequence)Progressions.IsProgression(threeElementsNonZero) }"); Progressions.PrintProgression(fourElementsNotZero, $"\nThe first {fourElementsNotZero.Length} element(s) of a sequence with a1 = {fourElementsNotZero[0]}"); Console.WriteLine($"\nThis progression is { (Progressions.Sequence)Progressions.IsProgression(fourElementsNotZero) }"); Progressions.PrintProgression(fiveRandomElements, $"\nThe first {fiveRandomElements.Length} element(s) of a sequence with a1 = {fiveRandomElements[0]}"); Console.WriteLine($"\nThis progression is { (Progressions.Sequence)Progressions.IsProgression(fiveRandomElements) }"); Console.WriteLine("\nPress any key to continue."); Console.ReadKey(); }