/// <summary> /// Метод обработки ответа пользователя по вопросу способа инициализации двумерного массива и инициализация оного. /// </summary> /// <param name="answer"></param> /// <param name="arrayForTask4"></param> /// <returns></returns> static bool CheckAnswerInitArrTusk4(out string answer, out Dementional2Array arrayForTask4) { arrayForTask4 = new Dementional2Array(); Console.Write("Введите способ заполнения массива:\n1. Массив с заданной размерностью и случайными значениями элементов\n2. Запись массива из файла\nДля выхода нажмите 0\nВаш выбор=>"); answer = Console.ReadLine(); if (answer == "1") { GetArrTusk4User(ref arrayForTask4); return(false); } else if (answer == "2") { var fileName = AppDomain.CurrentDomain.BaseDirectory; string answ; do { Console.Write("Введите имя искомого файла, включая расширение.(Файл должен находиться в базовой директории)\nЧтобы воспользоваться дефолтным файлом введите 1, или MyDementional2Array.txt\nДля выхода нажимте 0\nВаш ответ=>"); answ = Console.ReadLine(); if (answ == "1") { fileName = fileName + "MyDementional2Array.txt"; arrayForTask4 = new Dementional2Array(fileName); } else if (File.Exists(fileName = fileName + answ)) { arrayForTask4 = new Dementional2Array(fileName); } else { Console.WriteLine("Файл не найден. Проверьте правильность названия файла и попробуйте ещё раз."); } } while (File.Exists(fileName) != true && answ != "0"); if (answ == "0") { Console.WriteLine("Конструктор создания массива из файла был остановлен пользователем"); return(true); } else { return(false); } } else if (answer == "0") { Console.Clear(); return(true); } else { Console.WriteLine("Введён не корректный номер метода заполнения массива. Повторите ввод!"); return(true); } }
/// <summary> /// Метод обработки данных пользователя для инициализации двумерного массива с заданной размерностью и диапазоном значений /// </summary> /// <param name="arrTusk4"></param> static void GetArrTusk4User(ref Dementional2Array arrTusk4) { uint len; int min, max; bool flag = true; Console.WriteLine("Инициализация двумерного массива с заданной размерностью и диапазоном значений."); do { Console.Write("Введите размерность массива=>"); if (uint.TryParse(Console.ReadLine(), out len) && len != 0) { flag = false; do { Console.Write("Введите минимальное значение диапазона случайных чисел=>"); if (int.TryParse(Console.ReadLine(), out min)) { flag = false; do { Console.Write("Введите максимальное значение диапазона =>"); if (int.TryParse(Console.ReadLine(), out max)) { flag = false; arrTusk4 = new Dementional2Array(len, min, max); } else { Console.WriteLine("Введёно не корректное максимальное значение диапазона. Повторите ввод!"); flag = true; } }while (flag); } else { flag = true; Console.WriteLine("Введено не корректное минимальное значение диапазона. Повторите ввод!"); } }while (flag); } else { flag = true; Console.WriteLine("Введена не корректная размерность массива. Повторите ввод!"); } } while (flag); }
public Dementional2Array IndexOfMax(out int max) { max = Max(out int count); int l = 0; Dementional2Array inOfMax = new Dementional2Array(new int[count, 2]); for (int i = 0; i < arr.GetLength(0); i++) { for (int j = 0; j < arr.GetLength(1); j++) { if (max == arr[i, j]) { inOfMax.arr[l, 0] = i; inOfMax.arr[l, 1] = j; l++; } } } return(inOfMax); }
/// <summary> /// Метод выбора действия с активным двумерным массивом и запуска действия. /// </summary> /// <param name="arrTusk4">Двумерный массив</param> static void CheckWhatDoTusk4(Dementional2Array arrTusk4, string answer4) { do { Console.Clear(); Console.WriteLine("У нас получился следующий массив:"); arrTusk4.Print(); Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("Выберите действие, которое хотите совершить с данным массивом:\n1.Посчитать сумму элементов\n2.Найти сумму всех элементов массива больше заданного\n3.Найти минимальный и максимальный элементы массива\n4.Вернуть индексы максимальных элементов массива\n5.Записать массив в файл\nДля выхода в меню создания массива введите 0\nВаш выбор=>"); answer4 = Console.ReadLine(); if (answer4 == "1") { Console.WriteLine($"Сумма элементов активного массива = {arrTusk4.Sum()}"); Console.ReadKey(); } else if (answer4 == "2") { bool flag = true; do { Console.WriteLine("Введите число,чтобы посчитать сумму элементов массива, которые больше этого числа"); if (int.TryParse(Console.ReadLine(), out int number)) { Console.WriteLine($"Сумма элементов массива, которые больше числа: {number} => {arrTusk4.Sum(number)}"); flag = false; } else { Console.WriteLine("Введно не корректное значение. Повторите ввод!"); } } while (flag); Console.ReadKey(); } else if (answer4 == "3") { Console.WriteLine($"Минимальным элементов массива является=>{arrTusk4.Min()}\nА максимальным => {arrTusk4.Max()}"); Console.ReadKey(); } else if (answer4 == "4") { Console.WriteLine("Индексы максимальных элементов следующие:"); arrTusk4.IndexOfMax(out int max).Print(); Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine($"А сам максимальный элемент = {max}"); Console.ReadKey(); } else if (answer4 == "5") { Console.WriteLine("Введите имя файла базовой директории, в который вы хотите записать массив.\nЕсли файл не будет найден, вам предложат его создать в базовой директории"); string fileName = Console.ReadLine(); arrTusk4.PrintToFile(fileName); Console.ReadKey(); } else if (answer4 != "0") { Console.WriteLine("Вы ввели не корректный номер действия. Повторите ввод!"); } } while (answer4 != "0"); Console.Clear(); }