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

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

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

Описать класс для хранения массива чисел. Перегрузить в классе оператор ++, который должен увеличивать каждый положительный элемент массива на 2, каждый отрицательный элемент массива заменить средним арифметическим максимального и минимального элементов. Ребят выручайте горит лаба, мыслей по реализации нету,заранее благодарю

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

textual
Листинг программы
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. class MyArray
  6. {
  7.     private int[] array;
  8.     private int avgMinMax;
  9.     private bool avgMinMaxIsObsolete;
  10.  
  11.     public MyArray(IEnumerable<int> en)
  12.     {
  13.         array = en.ToArray();
  14.         avgMinMaxIsObsolete = true;
  15.     }
  16.  
  17.     private int AvgMinMax
  18.     {
  19.         get
  20.         {
  21.             if (avgMinMaxIsObsolete)
  22.             {
  23.                 avgMinMax = (array.Min() + array.Max()) / 2;
  24.                 avgMinMaxIsObsolete = false;
  25.             }
  26.             return avgMinMax;
  27.         }
  28.     }
  29.  
  30.     public static MyArray operator++(MyArray myArray)
  31.     {
  32.         for (int i = 0; i < myArray.array.Length; i++)
  33.         {
  34.             int elem = myArray.array[i];
  35.             elem = elem < 0 ? myArray.AvgMinMax : elem + 2;
  36.             myArray.array[i] = elem;
  37.         }
  38.         myArray.avgMinMaxIsObsolete = true;
  39.         return myArray;
  40.     }
  41.  
  42.     public override string ToString()
  43.     {
  44.         return String.Join(", ", array);
  45.     }
  46. }
  47.  
  48. class Program
  49. {
  50.     public static void Main()
  51.     {
  52.         MyArray myArray = new MyArray(Enumerable.Repeat(new Random(), 20).Select(r => r.Next(-100, 101)));
  53.         Console.WriteLine(myArray);
  54.         myArray++;
  55.         Console.WriteLine(myArray);
  56.         myArray++;
  57.         Console.WriteLine(myArray);
  58.     }
  59. }

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


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

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

7   голосов , оценка 4.143 из 5

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

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

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