Exemple #1
0
 /// <summary>
 /// Метод проверки выбора метода заполнения массива позльзователем. И собственно его заполнение.
 /// </summary>
 /// <param name="answer">Строка содержащая ответ пользователя</param>
 /// <param name="arrTusk2">Получившийся массив</param>
 /// <returns></returns>
 static bool CheckAnswerInitArrTusk2(out string answer, out MyIntArray arrTusk2)
 {
     arrTusk2 = new MyIntArray();
     Console.Write("Введите способ заполнения массива:\n1. Массив с заданной размерностью, начальным элементом и шагом заполнения\n2. Запись массива из файла\nДля выхода нажмите 0\nВаш выбор=>");
     answer = Console.ReadLine();
     if (answer == "1")
     {
         GetArrTusk2User(ref arrTusk2);
         return(false);
     }
     else
     if (answer == "2")
     {
         var    fileName = AppDomain.CurrentDomain.BaseDirectory;
         string answ;
         do
         {
             //R:\Учёба\Разработчик игр\Основы С#\Lesson4\BC_HW_L4_Malov\BC_HW_L4_Malov\MyIntArray.txt
             Console.Write("Введите имя искомого файла, включая расширение.(Файл должен находиться в базовой директории)\nЧтобы воспользоваться дефолтным файлом введите 1, или MyIntArray.txt\nДля выхода нажимте 0\nВаш ответ=>");
             answ = Console.ReadLine();
             if (answ == "1")
             {
                 fileName = fileName + "MyIntArray.txt";
                 arrTusk2 = new MyIntArray(fileName);
             }
             else
             if (File.Exists(fileName = fileName + answ))
             {
                 arrTusk2 = new MyIntArray(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")
     {
         return(true);
     }
     else
     {
         Console.WriteLine("Введён не корректный номер метода заполнения массива. Повторите ввод!");
         return(true);
     }
 }
Exemple #2
0
        static void RunTusk1()
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("Задание 1 к уроку 4\nДан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от –10 000 до 10 000 включительно. Написать программу, позволяющую найти и вывести количество пар элементов массива, в которых хотя бы одно число делится на 3.\n--------------------------");
            MyIntArray arrayForTusk1 = new MyIntArray(20, 10000);

            arrayForTusk1.Print();
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine($"количество пар элементов массива, в которых хотя бы одно число делится на 3 => {arrayForTusk1.MultiplesOfThree()}");
            Console.ResetColor();
            Console.ReadKey();
            Console.Clear();
        }
Exemple #3
0
        /// <summary>
        /// Метод инициализации массива заданной размерностью, начальным элементом и шагом заполнения пользователем. Парамаетры запрашиваются у пользователя и проверяются.
        /// </summary>
        /// <param name="arrTusk2">Одномерный массив для заполнения</param>
        static void GetArrTusk2User(ref MyIntArray arrTusk2)
        {
            uint len;
            int  start, gap;
            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 start))
                        {
                            flag = false;
                            do
                            {
                                Console.Write("Введите шаг =>");
                                if (int.TryParse(Console.ReadLine(), out gap))
                                {
                                    flag     = false;
                                    arrTusk2 = new MyIntArray(len, start, gap);
                                }
                                else
                                {
                                    Console.WriteLine("Введён не корректный шаг. Повторите ввод!");
                                    flag = true;
                                }
                            }while (flag);
                        }
                        else
                        {
                            flag = true;
                            Console.WriteLine("Введён не корректное значение стартового эллемента. Повторите ввод!");
                        }
                    }while (flag);
                }
                else
                {
                    flag = true;
                    Console.WriteLine("Введена не корректная размерность массива. Повторите ввод!");
                }
            } while (flag);
        }
        public int MaxCount(out int max)
        {
            max = arr.Max();
            int        maxcount = 0;
            MyIntArray temparr  = new MyIntArray(arr);

            System.Array.Sort(temparr.arr);
            for (int i = temparr.arr.Length - 1; i >= 0; i--)
            {
                if (temparr[i] != max)
                {
                    break;
                }
                else
                {
                    maxcount++;
                }
            }
            return(maxcount);
        }
Exemple #5
0
 /// <summary>
 /// Метод выбора действия с активным массивом и запуска действия.
 /// </summary>
 /// <param name="arrTusk2">Массив</param>
 static void CheckWhatDoTusk2(MyIntArray arrTusk2, string answer)
 {
     do
     {
         Console.Clear();
         Console.WriteLine("У нас получился следующий массив:");
         arrTusk2.Print();
         Console.ForegroundColor = ConsoleColor.Yellow;
         Console.Write("Выберите действие, которое хотите совершить с данным массивом:\n1.Посчитать сумму элементов\n2.Умножить каждый элемент на заданное число\n3.Поменять знак у каждого элемента на противоположный\n4.Посчитать кол-во максимальных элементов\n5.Записать массив в файл\nДля выхода в меню создания массива введите 0\nВаш выбор=>");
         answer = Console.ReadLine();
         if (answer == "1")
         {
             Console.WriteLine($"Сумма элементов активного массива = {arrTusk2.Sum()}");
             Console.ReadKey();
         }
         else
         if (answer == "2")
         {
             bool flag = true;
             do
             {
                 Console.WriteLine("Введите число на которое хотите умножить массив");
                 if (int.TryParse(Console.ReadLine(), out int number))
                 {
                     Console.WriteLine($"При умножении на число {number} получится следующий массив:");
                     arrTusk2.Multi(number);
                     arrTusk2.Print();
                     flag = false;
                 }
                 else
                 {
                     Console.WriteLine("Введён не корректный множитель. Повторите ввод!");
                 }
             } while (flag);
             Console.ReadKey();
         }
         else
         if (answer == "3")
         {
             arrTusk2.Inverse();
             arrTusk2.Print();
             Console.ReadKey();
         }
         else
         if (answer == "4")
         {
             Console.WriteLine($"Количество максимальных элементов  = {arrTusk2.MaxCount(out int max)}\n Сам максимальный элемент = {max}");
             Console.ReadKey();
         }
         else
         if (answer == "5")
         {
             Console.WriteLine("Введите имя файла базовой директории, в который вы хотите записать массив.\nЕсли файл не будет найден, вам предложат его создать в базовой директории");
             string fileName = Console.ReadLine();
             arrTusk2.PrintToFile(fileName);
             Console.ReadKey();
         }
         else
         if (answer != "0")
         {
             Console.WriteLine("Вы ввели не корректный номер действия. Повторите ввод!");
         }
     } while (answer != "0");
 }