Exemple #1
0
 /// <summary>
 /// Умножить на число
 /// </summary>
 /// <param name="num"></param>
 public static void Multi(ref MyArray array, int num)
 {
     for (int i = 0; i < array.Length; i++)
     {
         array[i] = num * array[i];
     }
 }
Exemple #2
0
        /// <summary>
        /// Копия MyArray
        /// </summary>
        /// <param name="array"></param>
        /// <returns></returns>
        public static MyArray Copy(MyArray array)
        {
            MyArray myArray = new MyArray(array.Length);

            for (int i = 0; i < array.Length; i++)
            {
                myArray[i] = array[i];
            }

            return(myArray);
        }
Exemple #3
0
        /// <summary>
        /// Умножить на число
        /// </summary>
        /// <param name="num"></param>
        /// <returns></returns>
        public static MyArray Multi(MyArray array, int num)
        {
            MyArray myArray = new MyArray(array.Length);

            for (int i = 0; i < array.Length; i++)
            {
                myArray[i] = num * array[i];
            }

            return(myArray);
        }
Exemple #4
0
        /// <summary>
        /// Изменить размер массива
        /// </summary>
        /// <param name="array"></param>
        /// <param name="newSize"></param>
        public static void Resize(ref MyArray array, int newSize)
        {
            if (newSize == 0)
            {
                return;
            }

            MyArray newArray = new MyArray(newSize);

            for (int i = 0; i < newSize; i++)
            {
                newArray[i] = array[i];
            }

            array = newArray;
        }
Exemple #5
0
        /// <summary>
        /// Объединить 2 массива
        /// </summary>
        /// <param name="array1"></param>
        /// <param name="array2"></param>
        /// <returns></returns>
        public static MyArray Merge(MyArray array1, MyArray array2)
        {
            MyArray result = new MyArray(array1.Length + array2.Length);
            int     j      = 0;

            for (int i = 0; i < array1.Length; i++, j++)
            {
                result[j] = array1[i];
            }

            for (int i = 0; i < array2.Length; i++, j++)
            {
                result[j] = array2[i];
            }

            return(result);
        }
Exemple #6
0
        static void Task2()
        {
            string  pathToFile = "Homework.txt";
            MyArray a          = new MyArray(6, -10, 10);

            // Вызов метода ToString
            Console.WriteLine($"Array a's info: {a}");
            Console.WriteLine($"The max: {a.Max}");
            Console.WriteLine($"The min: {a.Min}");
            Console.WriteLine($"The sum: {a.Sum}");
            Console.WriteLine($"The maxcount: {a.MaxCount}");
            Console.WriteLine($"The count of positiv elements: {a.CountPositiv}");
            a.Inverse();
            Console.WriteLine($"Inverted array{a}");
            MyArray b = new MyArray(8, 5.0, 5);

            Console.WriteLine($"Array b's info: {b}");
            b.WriteToFile(pathToFile);
            MyArray c = new MyArray("123.txt");

            Console.WriteLine($"Array c's info: {c}");

            Console.ReadKey();
        }
Exemple #7
0
        static void Task2()
        {
            ConsoleUtils.HomeworkTask(2, @"2. 
а) Дописать класс MyArray для работы с одномерным массивом. 
Реализовать конструктор, создающий массив заданной размерности и заполняющий массив числами от начального значения с заданным шагом. 
Создать свойство Sum, которые возвращают сумму элементов массива, 
метод Inverse, меняющий знаки у всех элементов массива, 
метод Multi, умножающий каждый элемент массива на определенное число, 
свойство MaxCount, возвращающее количество максимальных элементов, создать индексирующее свойство, 
свойство Length, возвращающая длину массива, 
метод Merge объединяющий два массива в один и возвращающий объединенный массив, 
метод Copy(), возвращающий копию массива, 
метод Resize(int newSize) изменяющий размер массива, 
свойство GetArray с помощью которого можно получить ссылку на массив. 
В Main продемонстрировать работу класса.
б)*Добавить конструктор и методы, которые загружают данные из файла и записывают данные в файл.");

            MyArray myArray = new MyArray(20, -10, 500, 4);

            ConsoleUtils.Print($"Сгенерирован массив (размерность 20, элементы от -10 до 500, шаг 20):\n\r{myArray}\n\r");
            ConsoleUtils.Print($"Sum [{myArray}]:\n\r{myArray.Sum}\n\r");
            ConsoleUtils.Print($"Inverse [{myArray}]:\n\r{string.Join(";", myArray.Inverse())}\n\r");
            ConsoleUtils.Print($"Multi(*10) [{myArray}]:\n\r{string.Join(";", myArray.Multi(10))}\n\r");
            ConsoleUtils.Print($"MaxCount [{myArray}]:\n\r{myArray.MaxCount}\n\r");
            ConsoleUtils.Print($"Length [{myArray}]:\n\r{myArray.Length}\n\r");

            MyArray myArray2   = new MyArray(30, 0, 999, 1);
            MyArray mergeArray = MyArray.Merge(myArray, myArray2);

            ConsoleUtils.Print($"Merge [{myArray}] c массивом [{myArray2}]: \n\r{mergeArray}\n\r");

            MyArray copyMyArray = MyArray.Copy(myArray);

            ConsoleUtils.Print($"Copy [{myArray}]:\n\r{copyMyArray}\n\r");

            MyArray.Resize(ref copyMyArray, 15);
            ConsoleUtils.Print($"Resize (newSize = 15) [{myArray}]:\n\r{copyMyArray}\n\r");

            int[] array = myArray.GetArray();
            ConsoleUtils.Print($"GetArray [{myArray}]:\n\r{array}{{{string.Join(";", array)}}}\n\r");

            string fileName = "data1.txt";

            try
            {
                myArray = new MyArray(fileName);
                ConsoleUtils.Print($"Считали массив из файла {fileName}: \n\r{myArray}\n\r");
            }
            catch (FileNotFoundException)
            {
                ConsoleUtils.Print($"Файл {fileName} не найден");
            }
            catch (Exception ex)
            {
                ConsoleUtils.Print($"При считывании файла {fileName} возникла ошибка: {ex.Message}");
            }

            try
            {
                ConsoleUtils.Print($"Записать значения массива \n\r[{mergeArray}] \n\rв файл {fileName}");

                MyArray.WriteToFile(fileName, mergeArray.GetArray());

                ConsoleUtils.Print($"Результат\n\r{string.Join(";", MyArray.ReadToFile(fileName))}\n\r");
            }
            catch (FileNotFoundException)
            {
                ConsoleUtils.Print($"Файл {fileName} не найден");
            }
            catch (Exception ex)
            {
                ConsoleUtils.Print($"При записи значений массива\n\r[{mergeArray}]\n\rв файла {fileName} возникла ошибка:\n\r{ex.Message}");
            }
            ConsoleUtils.WaitNextPress();
        }
Exemple #8
0
 /// <summary>
 /// Изменить знак всех элементов массива MyArray
 /// </summary>
 public static void Inverse(ref MyArray array)
 {
     Multi(array, -1);
 }
Exemple #9
0
 /// <summary>
 /// Изменить знак всех элементов массива MyArray
 /// </summary>
 public static MyArray Inverse(MyArray array)
 {
     return(Multi(array, -1));
 }