예제 #1
0
        /// <summary>
        /// Задача 3
        /// а) Дописать класс для работы с одномерным массивом. Реализовать конструктор, создающий массив
        /// определенного размера и заполняющий массив числами от начального значения с заданным шагом.
        /// Создать свойство Sum, которое возвращает сумму элементов массива, метод Inverse, возвращающий
        /// новый массив с измененными знаками у всех элементов массива (старый массив, остается без
        /// изменений), метод Multi, умножающий каждый элемент массива на определённое число, свойство
        /// MaxCount, возвращающее количество максимальных элементов.
        /// б)** Создать библиотеку содержащую класс для работы с массивом. Продемонстрировать работу библиотеки
        /// </summary>
        static void dz3()
        {
            Console.Clear();
            HelpCS.MyHeader(text: "Задача 3. Класс для работы с одномерным массивом.");
            ///////////////////////////////////////////////////////////////////////////////////
            WriteLine("Пункт А. Добавленные члены в класс для работы с одномерным массивом.");
            HelpCS.GetNumberFromConsole(out int size, "Размер массива (int)", cancelEnable: false);
            HelpCS.GetNumberFromConsole(out int step, "Шаг заполнения массива (int)", cancelEnable: false);
            CoolArray coolArray = new CoolArray(size, step);

            WriteLine("Сгенерированный массив:");
            for (int i = 0; i < coolArray.Length; i++)
            {
                Write($"{coolArray[i]} ");
            }
            WriteLine();
            int sum = coolArray.Sum;

            WriteLine($"Сумма элементов массива = {sum}");
            int[] arrInverse = coolArray.Inverse();
            WriteLine("Измененный массив с измененными знаками у всех элементов:");
            for (int i = 0; i < arrInverse.Length; i++)
            {
                Write($"{arrInverse[i]} ");
            }
            WriteLine();
            CoolArray.Multi(arrInverse, 2);
            WriteLine("Этот же массив со значениями, перемноженными на число 2:");
            for (int i = 0; i < arrInverse.Length; i++)
            {
                Write($"{arrInverse[i]} ");
            }
            WriteLine();
            int maxCount = coolArray.MaxCount;

            WriteLine($"Количество максимальных элементов: {maxCount}");
            HelpCS.MyPause();
            ///////////////////////////////////////////////////////////////////////////////////
            WriteLine("Пункт Б. Библиотека с классом для работы с массивом.");
            CoolLibArray coolLibArray = new CoolLibArray(30);

            WriteLine("Сгенерированный массив с помощью библиотеки:");
            for (int i = 0; i < coolLibArray.Length; i++)
            {
                Write($"{coolLibArray[i]} ");
            }
            WriteLine();
            WriteLine($"Сумма элементов массива = {coolLibArray.Sum}");
            WriteLine($"Количество максимальных элементов: {coolLibArray.MaxCount}");
            HelpCS.MyPause();
            HelpCS.MyFooter();
        }
예제 #2
0
        /// <summary>
        ///2.	Реализуйте задачу 1 в виде статического класса StaticClass;
        ///а) Класс должен содержать статический метод, который принимает на вход массив и решает задачу 1;
        ///б) *Добавьте статический метод для считывания массива из текстового файла.Метод должен возвращать массив целых чисел;
        ///в)**Добавьте обработку ситуации отсутствия файла на диске.
        /// </summary>
        static void dz2() // работа так или иначе принесет плоды, я наконецто понял что такое классы и как ими пользоватся подглядев решение
        {
            Console.Clear();
            HelpCS.MyHeader(text: "Задача 2. Добавление статического класса StaticClass."); // так получилось что нашел интиресную библиотеку Myhelper, буду использовать дальше
                                                                                            // и дорабатывать в чем я сомневаюсь если конечно надо туда лезть
                                                                                            // очень понравился хелпер,
            //Console.Title = "Реализуйте задачу 1 в виде статического класса StaticClass;";

            WriteLine("Пункт А. Статический класс решения поставленной задачи.");
            int[] arrInts = StaticClass.GetArrayWithRandomNum(20); //получить массив
            WriteLine("Массив элементов из случайных чисел:");
            Array.ForEach(arrInts, WriteLine);                     //вывод массива
            WriteLine();
            int count = StaticClass.GetCountGoodNumbers(arrInts);  //получить количество пар

            WriteLine($"Кол-во пар элементов массива, в которых только одно число делится на три = {count}");
            HelpCS.MyPause();
            ///////////////////////////////////////////////////////////////////////////////////
            WriteLine("Пункт Б. Статический метод считывания массива из текстового файла.");
            int[] arrLoaded = StaticClass.LoadArrayFromFile(@"..\..\data.txt");
            WriteLine("Массив загруженных элементов из файла:");
            Array.ForEach(arrLoaded, WriteLine); //вывод массива
            WriteLine();
            HelpCS.MyPause();
            ///////////////////////////////////////////////////////////////////////////////////
            WriteLine("Пункт В. Обработка ситуации отсутствия файла на диске.");
            HelpCS.MyPause("Начинаю считывать данные из файла 'не существует.txt'. Нажмите любую кнопку...");

            int[] arrNoLoaded = default; // инициалиируем

            try
            {
                arrNoLoaded = StaticClass.LoadArrayFromFile(AppDomain.CurrentDomain.BaseDirectory + "data2.txt");
            }
            catch (Exception error) when(error.Data != null)
            {
                HelpCS.MyPause(error.Message + "\nДальнейшая работа программы невозможна. Нажмите любую кнопку ...");
            }
            ///////////////////////////////// пытаюсь понять как не выходить из метода а перейти к следующим инструкциям // это клнечно if
            WriteLine("Массив загруженных элементов из файла:");
            if (arrNoLoaded != arrNoLoaded)
            {
                Array.ForEach(arrNoLoaded, WriteLine);                             //вывод массива  // добавил if что оно есть вобще
            }
            WriteLine(arrNoLoaded);
            HelpCS.MyFooter();
            ReadKey();
        }
예제 #3
0
        /// <summary>
        /// 5.
        /// а) Реализовать библиотеку с классом для работы с двумерным массивом.Реализовать конструктор, заполняющий массив случайными числами.Создать методы, которые возвращают
        /// сумму всех элементов массива, сумму всех элементов массива больше заданного, свойство, возвращающее минимальный элемент массива, свойство, возвращающее максимальный элемент массива, метод,
        /// возвращающий номер максимального элемента массива(через параметры, используя модификатор ref или out).
        /// *б) Добавить конструктор и методы, которые загружают данные из файла и записывают данные в файл.
        /// ** в) Обработать возможные исключительные ситуации при работе с файлами.
        /// </summary>
        static void dz5()
        {
            Console.Clear();
            HelpCS.MyHeader(text: "Задача 5. Библиотека с классом для работы с двумерным массивом. ");
            ///////////////////////////////////////////////////////////////////////////////////
            WriteLine("Пункт А. Реализовать библиотеку с классами для работы с массивом.");
            if (HelpCS.GetNumberFromConsole(out int colCount, "Введите число колонок у массива (int) (q-отмена)"))
            {
                if (HelpCS.GetNumberFromConsole(out int rowCount, "Введите число строк у массива (int) (q-отмена)"))
                {
                    DoubleArray doubleArray = new DoubleArray(colCount, rowCount);
                    WriteLine("Массив заполненный случайными числами:");
                    WriteLine(doubleArray);
                    WriteLine($"Сумма всех элементов массива = {doubleArray.Sum()}");
                    WriteLine("Сумма всех элементов массива больше заданного:");
                    if (HelpCS.GetNumberFromConsole(out int minValue, "Введите заданное число (int) (q-отмена)"))
                    {
                        WriteLine($"Сумма всех элементов массива больше заданного = {doubleArray.Sum(minValue)}");
                        WriteLine($"Минимальный элемент массива равен {doubleArray.Min}");
                        int max = doubleArray.Max;
                        WriteLine($"Максимальный элемент массива равен {max}");
                        var(_, numCol, numRow) = doubleArray.GetIndexForValue(max);
                        WriteLine($"Он находится в колонке {numCol + 1} и строке {numRow + 1}");
                        HelpCS.MyPause();
                    }
                }
            }
            ///////////////////////////////////////////////////////////////////////////////////
            WriteLine("Пункт Б. Добавить конструктор и методы, которые загружают данные из файла и записывают данные в файл.");
            DoubleArray loadDoubleArray = new DoubleArray(@"..\..\DoubleArrayFile.txt");

            WriteLine("\nСконструированный массив по файлу:");
            WriteLine(loadDoubleArray);
            WriteLine("-> Новый массив");
            DoubleArray newDoubleArray = new DoubleArray(10, 5);

            WriteLine("-> Запись нового массива в файл");
            newDoubleArray.SaveToFile(@"..\..\NewDoubleArrayFile.txt");
            WriteLine("-> Чтение нового массива из файла");
            newDoubleArray.LoadFromFile(@"..\..\NewDoubleArrayFile.txt");
            WriteLine("\nНовый массив прочитанный из файла:");
            WriteLine(newDoubleArray);
            HelpCS.MyPause();
            ///////////////////////////////////////////////////////////////////////////////////
            WriteLine("Пункт В. Обработать возможные исключительные ситуации при работе с файлами.");
            HelpCS.MyPause("\nЧтение несуществующего файла ->");
            try
            {
                DoubleArray nonDoubleArray = new DoubleArray("НетТакогоФайла.txt");
            }
            catch (Exception e)
            {
                WriteLine("Исключение: " + e.Message);
            }
            HelpCS.MyPause("\nПопытка записи в уже открытый файл ->");
            DoubleArray hackDoubleArray = new DoubleArray(3, 3);

            try
            {
                hackDoubleArray.SaveToFile("ConsoleApp5DoubleArray.exe");
            }
            catch (Exception e)
            {
                WriteLine("Исключение: " + e.Message);
            }
            ///////////////////////////////////////////////////////////////////////////////////
            HelpCS.MyFooter();
        }