Описать класс для хранения массива чисел - C# (179707)

Узнай цену своей работы

Формулировка задачи:

Описать класс для хранения массива чисел. Перегрузить в классе оператор *, который должен находить произведение четных элементов двух массивов.

Решение задачи: «Описать класс для хранения массива чисел»

textual
Листинг программы
  1. class MyArray
  2. {
  3.     double[] array;
  4.  
  5.     // свойство, возвращающее длину массива
  6.     public double Length    
  7.     {
  8.         get { return array.Length; }
  9.         private set { }
  10.     }
  11.  
  12.     // конструктор по умолчанию
  13.     public MyArray() { }
  14.  
  15.     // конструктор, принимающий в качестве параметра массив
  16.     public MyArray(double[] array)  
  17.     {
  18.         // выделяем память на нашего массива
  19.         this.array = new double[array.Length];
  20.         // записываем значения из переданного в конструктор массива в наш массив
  21.         for (int i = 0; i < array.Length; i++)  
  22.             this.array[i] = array[i];
  23.     }
  24.  
  25.     // итератор класса, позволяет обращаться к объекту класса как к массиву (по индексу)
  26.     // например, см. реализацию перегрузки оператора *
  27.     public double this[int index]  
  28.     {
  29.         get { return array[index]; }    
  30.         set
  31.         {
  32.             if (index >= 0 && index < array.Length) // проверка индекса на соответствие разрешенному диапазону
  33.                 array[index] = value;
  34.         }
  35.     }
  36.  
  37.     // перегрузка оператора *
  38.     public static double? operator *(MyArray a, MyArray b)  
  39.     {
  40.         // переменная, содержащая результат умножения (тип double? допускает значение null)
  41.         double? mul = 1.0;
  42.  
  43.         // находим четные числа в первом массиве и перемножаем
  44.         for (int i = 0; i < a.Length; i++)  
  45.             if (a[i] % 2 == 0)
  46.                 mul *= a[i];
  47.         // аналогично для второго массива
  48.         for (int i = 0; i < b.Length; i++)  
  49.             if (b[i] % 2 == 0)
  50.                 mul *= b[i];
  51.         // возвращаем результат умножения или null, если в обоих массивах нет ни одного четного числа
  52.         return mul == 1.0 ? null : mul;
  53.     }
  54. }

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


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

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

11   голосов , оценка 3.727 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы