示例#1
0
        // поиск суммы второго наибольшего и второго наименьшего элемента массива
        internal static string FindSummaTwoSmallestAndTwoLargestElementArray(int[] array)
        {
            int  number = array[0];
            bool flag   = false;

            Array.Sort(array);
            for (int i = 1; i < array.Length; i++)
            {
                if (array[i] != number)
                {
                    flag = true;
                }
            }
            if (flag)
            {
                WorkWithTheConsole.Output("The 2nd largest elements = ", array[1]);
                WorkWithTheConsole.Output("The 2nd smallest element = ", array[array.Length - 2]);
                WorkWithTheConsole.Output("The sum of the 2nd largest and 2nd smallest elements of the array = {0}\n", array[1] + array[array.Length - 2]);
                return((array[1] + array[array.Length - 2]).ToString());
            }
            else
            {
                WorkWithTheConsole.OutputError("All elements are equal\n");
                return("All elements are equal");
            }
        }
示例#2
0
 //ввод натурального числа
 static void InputNaturalNumber()
 {
     WorkWithTheConsole.InputInt32("Enter natural number: ", ref numberN);
     if (numberN <= 0)
     {
         WorkWithTheConsole.OutputError("This is not a natural number \n");
         WorkWithTheConsole.InputInt32("Enter natural number: ", ref numberN);
     }
 }
示例#3
0
 static void OutputFactorialNumbersAsTheProductOfThreeConsecutivePrimes(bool flag)
 {
     if (flag)
     {
         WorkWithTheConsole.Output(numberN + "! = " + Factorial(numberN) + ": " + multiplication3PrimeNumber + "\n");
     }
     else
     {
         WorkWithTheConsole.OutputError("can not imagine " + numberN + "! = " + Factorial(numberN) + " as a product of three consecutive prime numbers \n");
     }
 }
示例#4
0
 // вывод на экран решение задачи по поиску совершенных чисел на отрезке
 static void OutputPerfectNumbers(string perfectNumber, bool flag)
 {
     if (flag)
     {
         WorkWithTheConsole.Output("Perfect number:", perfectNumber);
     }
     else
     {
         WorkWithTheConsole.OutputError("No perfect numbers \n");
     }
 }
示例#5
0
 // вывод на экран решение задачи на определение являются ли два числа взаимнопростыми
 static void OutputMutuallySimpleNumbers()
 {
     if (naturalNumberFlag == true)
     {
         WorkWithTheConsole.OutputError("Number 0 it is not natural, therefore it can not be coprime with any number\n");
     }
     else if (NOD == 1)
     {
         WorkWithTheConsole.OutputVerity("Numbers " + firstNumber + " and " + secondNumber + " are mutually simple, because their NOD = 1 \n");
     }
     else
     {
         WorkWithTheConsole.OutputError("Numbers " + firstNumber + " and " + secondNumber + " are not mutually simple, because their NOD != 1 \n");
     }
 }
示例#6
0
        static int[] array;        // одномерный массив

        // проверка на корректность ввода размера массива для чтения с консоли (тесты виснут из-за консоли)
        static void InputInvalidSizeArray(ref int size, string textConsole)
        {
            int number = 0;

            WorkWithTheConsole.InputInt32(textConsole, ref number);
            if (number <= 0)
            {
                WorkWithTheConsole.OutputError("ERROR. The size of the array must be a positive number\n");
                InputInvalidSizeArray(ref size, textConsole);
            }
            else
            {
                size = number;
            }
        }
示例#7
0
        // поиск максимальной неубвающей последовательности
        internal static int[] MaximumDoesNotDecreaseSequence(int[] array)
        {
            int  iStartMax     = -1;     // индекс 1-ого элемента макс последовательности
            int  iFinMax       = -1;     // индекс последнего элемента макс последовательности
            int  amountMax     = -1;     // максимальное количество элементов в макс последовательности
            int  amountCurrent = 0;      // максимальное количество элемонтов в тек последовательности
            int  iStartCurrent = -1;     // индекс 1-ого элемента текущей последовательности
            int  iFinCurrent   = -1;     // индекс последнего элемента текущей последовательности
            bool flag          = false;  // флаг для проверки неубывающей последовательности

            for (int i = 0; i < array.Length - 1; i++)
            {
                if (array[i] <= array[i + 1])
                {
                    if (!flag)
                    {
                        flag          = true;
                        iStartCurrent = i;
                    }

                    iFinCurrent    = i + 1;
                    amountCurrent += 1;

                    if (amountCurrent > amountMax)
                    {
                        iStartMax = iStartCurrent;
                        iFinMax   = i + 1;
                        amountMax = amountCurrent;
                    }
                }
                else
                {
                    amountCurrent = 0;
                    flag          = false;
                }
            }

            if (amountMax != -1)
            {
                WorkWithTheConsole.Output("Start array: ");
                for (int i = 0; i < array.Length; i++)
                {
                    WorkWithTheConsole.Output(" ");
                    WorkWithTheConsole.Output(array[i]);
                }
                WorkWithTheConsole.Output("\nStart index maximum sequence: ", iStartMax);
                WorkWithTheConsole.Output("Finish index maximum sequence: ", iFinMax);
                WorkWithTheConsole.Output("Maximum sequence: ");
                for (int i = iStartMax; i <= iFinMax; i++)
                {
                    WorkWithTheConsole.Output(" ");
                    WorkWithTheConsole.Output(array[i]);
                }

                // для тестов
                int[] arrayTests = new int[iFinMax - iStartMax + 1];
                int   j          = 0;
                for (int i = iStartMax; i <= iFinMax; i++)
                {
                    arrayTests[j] = array[i];
                    ++j;
                }
                return(arrayTests);
            }
            else
            {
                WorkWithTheConsole.OutputError("Does not decrease sequence missing");
                return(null);
            }
        }