Описать класс для хранения массива чисел - C# (179707)
Формулировка задачи:
Описать класс для хранения массива чисел. Перегрузить в классе оператор *, который должен находить произведение четных элементов двух массивов.
Решение задачи: «Описать класс для хранения массива чисел»
textual
Листинг программы
- class MyArray
- {
- double[] array;
- // свойство, возвращающее длину массива
- public double Length
- {
- get { return array.Length; }
- private set { }
- }
- // конструктор по умолчанию
- public MyArray() { }
- // конструктор, принимающий в качестве параметра массив
- public MyArray(double[] array)
- {
- // выделяем память на нашего массива
- this.array = new double[array.Length];
- // записываем значения из переданного в конструктор массива в наш массив
- for (int i = 0; i < array.Length; i++)
- this.array[i] = array[i];
- }
- // итератор класса, позволяет обращаться к объекту класса как к массиву (по индексу)
- // например, см. реализацию перегрузки оператора *
- public double this[int index]
- {
- get { return array[index]; }
- set
- {
- if (index >= 0 && index < array.Length) // проверка индекса на соответствие разрешенному диапазону
- array[index] = value;
- }
- }
- // перегрузка оператора *
- public static double? operator *(MyArray a, MyArray b)
- {
- // переменная, содержащая результат умножения (тип double? допускает значение null)
- double? mul = 1.0;
- // находим четные числа в первом массиве и перемножаем
- for (int i = 0; i < a.Length; i++)
- if (a[i] % 2 == 0)
- mul *= a[i];
- // аналогично для второго массива
- for (int i = 0; i < b.Length; i++)
- if (b[i] % 2 == 0)
- mul *= b[i];
- // возвращаем результат умножения или null, если в обоих массивах нет ни одного четного числа
- return mul == 1.0 ? null : mul;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д