Описать класс для хранения массива чисел - 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;
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5
Похожие ответы