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; } } }
public static void AppEndRaw(ref LabIntJagArray jagArr) { int length = LabMethods.GetInt( "Введите целочисленную длину строки: ", min: 0); jagArr.AppEndRaw(length); }
public static void AppEndRandomLengthRaw(ref LabIntJagArray jagArr) { int maxLength = LabMethods.GetInt( "Введите целочисленную максимальную длину строки: ", min: 0); Random rnd = new Random(); jagArr.AppEndRaw(rnd.Next(0, maxLength)); }
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--; } } }
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; } } }
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); }
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); }
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); }
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; } } }
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; } } }
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; ; } } }