Example #1
0
        static void Lab6Menu()
        {
            Console.WriteLine("Лабораторная работа №6\nРабота с массивами и строками");
            string operations = "\nВыбор типа массива:"
                                + "\n\t1 Одномерные массивы"
                                + "\n\t2 Двумерные массивы"
                                + "\n\t3 Рваные массивы"
                                + "\n\t4 Работа со строками"
                                + "\n\t5 Повторить меню";

            Console.WriteLine(operations);
            int number = -1;

            while (number != 0)
            {
                number = LabMethods.GetInt("Введите номер операции. Для выхода введите 0, "
                                           + "для повтора меню 5", min: -1, max: 10);
                switch (number)
                {
                case 0: break;

                case 1: LabIntArray.ArrayMenu(); break;

                case 2: LabIntMatrix.MatrixMenu(); break;

                case 3: LabIntJagArray.JagArrayMenu(); break;

                case 4: WorkWithStringMenu(); break;

                case 5: Console.WriteLine(operations); break;
                }
            }
        }
Example #2
0
        public static void AppEndRaw(ref LabIntJagArray jagArr)
        {
            int length = LabMethods.GetInt(
                "Введите целочисленную длину строки: ", min: 0);

            jagArr.AppEndRaw(length);
        }
Example #3
0
        public static void AppEndRandomLengthRaw(ref LabIntJagArray jagArr)
        {
            int maxLength = LabMethods.GetInt(
                "Введите целочисленную максимальную длину строки: ", min: 0);
            Random rnd = new Random();

            jagArr.AppEndRaw(rnd.Next(0, maxLength));
        }
Example #4
0
        public static void SearchElementByValue(LabIntArray arr)
        {
            int    value  = LabMethods.GetInt("Введите значение для поиска: ");
            int    result = arr.FindFirstIndexByValue(value);
            string answer = result == -1 ? "Элемент не найден" : $"Индекс первого элемента {result}";

            Console.WriteLine(answer);
        }
        public static LabIntMatrix GetMatrixWithRandomElements()
        {
            int raws = LabMethods.GetInt(
                "Введите целочисленное количество строк матрицы: ", min: 0);
            int columns = LabMethods.GetInt(
                "Введите целочисленное количество столбцов матрицы: ", min: 0);
            var matrix = new LabIntMatrix(raws, columns);

            matrix.SetRandomElements(min: -100, max: 100);
            return(matrix);
        }
 /// <summary>
 /// Сортировка массива методом простой вставки
 /// </summary>
 public void InsertionSort()
 {
     for (int i = 1; i < Length; i++)
     {
         int j = i;
         while (j > 0 && array[j] < array[j - 1])
         {
             LabMethods.Swap <int>(ref array[j], ref array[j - 1]);
             j--;
         }
     }
 }
Example #7
0
        public static int[] GetElementsForInsert()
        {
            int size = LabMethods.GetInt(
                "Введите целое количество элементов для вставки > 0: ", min: 0);

            int[] elemensForIns = new int[size];
            for (int i = 0; i < size; i++)
            {
                elemensForIns[i] = LabMethods.GetInt("Введите целое значение элемента: ");
            }
            return(elemensForIns);
        }
 public void SetElements()
 {
     for (int raw = 0; raw < RawCount; raw++)
     {
         Console.WriteLine($"Строка №{raw + 1}");
         for (int column = 0; column < ColumnCount; column++)
         {
             matrix[raw, column] = LabMethods.GetInt(
                 $"Введите целочисленное значение элемента №{column + 1}");
         }
     }
 }
        public static void MatrixMenu()
        {
            Console.WriteLine("\nРабота с двумерными массивами");
            var matrix = GetMatrixWithRandomElements();

            matrix.SetRandomElements(min: -100, max: 100);
            Console.WriteLine($"Матрица размером {matrix.RawCount}*{matrix.ColumnCount} заполненa случайными числами");
            matrix.PrintMatrix();
            string operations = "Операции с массивом:"
                                + "\n\t1 Распечатать матрицу"
                                + "\n\t2 Удалить строки с четным индексом"
                                + "\n\t3 Создать новую матрицу"
                                + "\n\t4 Заполнить матрицу с консоли"
                                + "\n\t5 Повтор меню";

            Console.WriteLine(operations);
            int number = -1;

            while (number != 0)
            {
                number = LabMethods.GetInt("Введите номер операции. Для выхода введите 0, "
                                           + "для повтора меню 5", min: -1, max: 10);
                switch (number)
                {
                case 0: break;

                case 1: matrix.PrintMatrix(); break;

                case 2:
                    matrix.RemoveEvenRaws();
                    matrix.PrintMatrix();
                    break;

                case 3:
                    matrix = GetMatrixWithRandomElements();
                    matrix.PrintMatrix();
                    break;

                case 4:
                    matrix.SetElements();
                    matrix.PrintMatrix();
                    break;

                case 5: Console.WriteLine(operations); break;
                }
            }
        }
Example #10
0
        public static LabIntJagArray GetJagArrayWithRandomElements()
        {
            int raws = LabMethods.GetInt(
                "Введите целочисленное количество строк рваного массива: ", min: 0);

            int[] columnsCount = new int[raws];
            for (int i = 0; i < raws; i++)
            {
                columnsCount[i] = LabMethods.GetInt(
                    $"Введите целочисленное количество столбцов {i} строки массива: ",
                    min: 0);
            }
            var jagArr = new LabIntJagArray(raws, columnsCount);

            jagArr.SetRandomElements(min: -5, max: 5);
            return(jagArr);
        }
Example #11
0
        public static LabIntJagArray GetJagArrayWithRandomColumns()
        {
            Console.WriteLine("Создание рваного массива со строками случайной длины");
            int raws = LabMethods.GetInt(
                "Введите целочисленное количество строк рваного массива: ", min: 0);
            int maxLength = LabMethods.GetInt(
                "Введите целочисленную максимальную длину строк: ", min: 0);

            int[]  columnsCount = new int[raws];
            Random rnd          = new Random();

            for (int i = 0; i < raws; i++)
            {
                columnsCount[i] = rnd.Next(maxLength + 1);
            }
            var jagArr = new LabIntJagArray(raws, columnsCount);

            jagArr.SetRandomElements(min: -5, max: 5);
            return(jagArr);
        }
Example #12
0
        public static LabIntArray GetIntArrayWithRandom()
        {
            var arr         = new LabIntArray(1);
            int arrayLength = LabMethods.GetInt(
                "Введите целочисленный неотрицательный размер массива: ", min: 0);

            try
            {
                arr = new LabIntArray(arrayLength);
                arr.SetRandomElements(min: -100, max: 100);
            }
            catch (Exception ex)
            {
                Console.WriteLine(
                    $"Операцию невозможно выполнить. Ошибка: {ex.Message}");
            }
            Console.WriteLine($"Массив длиной {arrayLength} заполнен случайными числами");
            arr.PrintArrayInLine();
            return(arr);
        }
Example #13
0
        static void WorkWithStringMenu()
        {
            Console.WriteLine("\nРабота со строками");
            string operations = "\nВыбор операции:"
                                + "\n\t1 Ввод строки с консоли"
                                + "\n\t2 Вывести строку"
                                + "\n\t3 Удалить слова начинающиеся и заканчивающиеся одной буквой"
                                + "\n\t4 Повторить меню";

            Console.WriteLine(operations);
            int    number = -1;
            string input  = "";

            while (number != 0)
            {
                number = LabMethods.GetInt("Введите номер операции. Для выхода введите 0, "
                                           + "для повтора меню 4", min: -1, max: 10);
                switch (number)
                {
                case 0: break;

                case 1:
                    Console.WriteLine("Введите строку");
                    input = Console.ReadLine();
                    break;

                case 2:
                    PrintString(input);
                    break;

                case 3:
                    input = RemoveWordsBegEndSameChar(input);
                    PrintString(input);
                    break;

                case 4: Console.WriteLine(operations); break;
                }
            }
        }
Example #14
0
        public static void JagArrayMenu()
        {
            Console.WriteLine("\nРабота с рваными массивами");
            var jagArr = GetJagArrayWithRandomColumns();

            jagArr.Print();
            string operations = "Операции с рваными массивами:"
                                + "\n\t1 Распечатать"
                                + "\n\t2 Удалить строки с четным номером"
                                + "\n\t3 Создать рваный массив со строками заданной длины"
                                + "\n\t4 Добавить строку случайной длины в конец массива"
                                + "\n\t5 Добавить строку заданной длины в конец массива"
                                + "\n\t6 Добавить в конец каждой строки случайный элемент"
                                + "\n\t7 Удалить все строки содержащие не менее двух нулей"
                                + "\n\t8 Повторить меню";

            Console.WriteLine(operations);
            int number = -1;

            while (number != 0)
            {
                number = LabMethods.GetInt("Введите номер операции. Для выхода введите 0, "
                                           + "для повтора меню 8", min: -1, max: 10);
                switch (number)
                {
                case 0: break;

                case 1: jagArr.Print(); break;

                case 2:
                    if (jagArr.RawCount <= 1)
                    {
                        Console.WriteLine(
                            "Массив не имеет строк с четным номером");
                    }
                    else
                    {
                        jagArr.RemoveRawsWithEvenNumbers();
                    }
                    jagArr.Print();
                    break;

                case 3:
                    jagArr = GetJagArrayWithRandomElements();
                    jagArr.Print();
                    break;

                case 4:
                    AppEndRandomLengthRaw(ref jagArr);
                    jagArr.SetRandomElementsToRaw(jagArr.RawCount - 1,
                                                  min: -100, max: 100);
                    jagArr.Print();
                    break;

                case 5:
                    AppEndRaw(ref jagArr);
                    jagArr.SetRandomElementsToRaw(jagArr.RawCount - 1,
                                                  min: -100, max: 100);
                    jagArr.Print();
                    break;

                case 6:
                    jagArr.AppEndRandomElementToRaws(min: -100, max: 100);
                    jagArr.Print();
                    break;

                case 7:
                    int countRemovedRaws = jagArr.RemoveRawsWithTwoZero();
                    jagArr.Print();
                    Console.WriteLine
                        ($"\nУдалено {countRemovedRaws} строк, содержащих не менее двух нулей");
                    break;

                case 8: Console.WriteLine(operations); break;
                }
            }
        }
Example #15
0
        public static void ArrayMenu()
        {
            Console.WriteLine("\nРабота с одномерными массивами");
            var    arr        = GetIntArrayWithRandom();
            string operations = "Операции с массивом:"
                                + "\n\t1 Вывести массив строкой"
                                + "\n\t2 Повторить меню"
                                + "\n\t3 Заполнить массив целочисленной последовательностью от нуля до размера массива"
                                + "\n\t4 Заполнить массив случайными числами"
                                + "\n\t5 Удалить элементы с четными индексами"
                                + "\n\t6 Вставить в массив N элементов начиная с K"
                                + "\n\t7 Перевернуть массив"
                                + "\n\t8 Найти первый индекс элемента с заданным значением"
                                + "\n\t9 Отсортировать массив методом простого включения"
                                + "\n\t10 Создать новый массив заданного размера";

            Console.WriteLine(operations);
            int number = -1;

            while (number != 0)
            {
                number = LabMethods.GetInt("Введите номер операции. Для выхода введите 0, "
                                           + "для повтора меню 2", min: -1, max: 10);
                switch (number)
                {
                case 0: break;

                case 1: arr.PrintArrayInLine(); break;

                case 2: Console.WriteLine(operations); break;

                case 3:
                    arr.SetElementsInRange();
                    arr.PrintArrayInLine();
                    break;

                case 4:
                    arr.SetRandomElements(min: -10, max: 10);
                    arr.PrintArrayInLine();
                    break;

                case 5:
                    arr.RemoveElementsWithEvenIndex();
                    arr.PrintArrayInLine();
                    break;

                case 6:
                    int[] elemensForIns = GetElementsForInsert();
                    int   index         = LabMethods.GetInt(
                        $"Введите индекс элемента для вставки от 0 до {arr.Length}: ",
                        min: -1, max: arr.Length);
                    try
                    {
                        arr.InsertElementsBegFromK(index, elemensForIns);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(
                            $"Операцию невозможно выполнить. Ошибка: {ex.Message}");
                    }
                    arr.PrintArrayInLine();
                    break;

                case 7:
                    arr.Reverse();
                    arr.PrintArrayInLine();
                    break;

                case 8:
                    SearchElementByValue(arr);
                    break;

                case 9:
                    arr.InsertionSort();
                    arr.PrintArrayInLine();
                    break;

                case 10:
                    arr = GetIntArrayWithRandom();
                    break;
                    ;
                }
            }
        }