Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 4
0
 /// <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();
 }