/// <summary>Складывает два массива соответсвующих размерностей /// </summary> /// <param name="lftOperand">объект класса IntArray</param> /// <param name="rghOperand">объект класса IntArray</param> /// <returns>объект класса IntArray</returns> public static IntArray operator +(IntArray lftOperand,IntArray rghOperand) { IntArray Result = null; if(lftOperand != null && rghOperand != null) { if(lftOperand.intArray.GetLength(0) == rghOperand.intArray.GetLength(0)) { if(lftOperand.intArray.GetLength(1) == rghOperand.intArray.GetLength(1)) { int n = lftOperand.intArray.GetLength(0); int m = lftOperand.intArray.GetLength(1); Result = new IntArray(n, m); for(int i = 0; i < n; ++i) { for(int z = 0; z < m; ++z) { Result[i, z] = lftOperand[i, z] + rghOperand[i, z]; } } return Result; } else { throw new NullReferenceException(); } } else { throw new NullReferenceException(); } } else { throw new NullReferenceException(); } }
static void Main(string[] args) { //ТЕСТИРОВАНИЕ ЧЛЕНОВ КЛАССА: //конструктор int n = 2; int m = 2; IntArray array1 = new IntArray(n, m); IntArray array2 = new IntArray(n, m); //Ввод элементов массива с клавиатуры Console.WriteLine("Введите значение массива №1 размерностю " + "2*2: "); array1.Set(); //Ввод элементов массива с клавиатуры Console.WriteLine("Введите значение массива №2 размерностю " + "2*2: "); array2.Set(); Console.WriteLine(); //Подсчет количества нулевых элементов в массиве Console.WriteLine("Количество нулевых элементов в массиве №1: "); Console.WriteLine(array1.Zero); Console.WriteLine(); //Установка всех значений главной диагонали массива равными //скалеру Console.WriteLine("Установка всех значений главной диагонали "+ "массива равными 0"); array1.Scalar = 0; array1.Show(); Console.WriteLine(); //Вычисление суммы элеметов i-того столбца Console.WriteLine("Вычисление суммы элеметов 1-го столбца " + "массива №1: "); Console.WriteLine(array1.Sum(0)); Console.WriteLine(); //Инкрементирование значений массива Console.WriteLine("Инкрементирование значений массива №1:"); ++array1; array1.Show(); Console.WriteLine(); //Применение объекта класса в операторах ветвления Console.WriteLine("Применение объекта класса в операторах " + "ветвления: "); Console.WriteLine("(array1)?количество строк и столбцов в " + "массиве равно: количество строк и столбцов в массиве не " + "равно => ответ:" + Environment.NewLine + "\"{0}\"", (array1)?"true":"false"); Console.WriteLine(); //Суммирование объектов класса IntArray Console.WriteLine("Суммирование объектов класса IntArray"); Console.WriteLine("array1 + array2"); Console.WriteLine("Result: "); (array1 + array2).Show(); Console.WriteLine(); //Преобразование класса IntArray в двумерный массив Console.WriteLine("Преобразование класса IntArray в двумерный " + "массив"); int[,] array3 = (int[,])array1; for (int i = 0; i < array3.GetLength(0); ++i) { for (int z = 0; z < array3.GetLength(1); ++z) { Console.Write("{0} ", array3[i,z]); } Console.WriteLine(); } Console.WriteLine(); //Преобразование двумерного массива в класс IntArray Console.WriteLine("Преобразование двумерного массива в класс " + "IntArray"); int[,] array4 = {{9,8},{7,6}}; ((IntArray)array4).Show(); Console.WriteLine(); }