Описать класс для хранения массива чисел - C# (179933)
Формулировка задачи:
Описать класс для хранения массива чисел. Перегрузить в классе оператор ++, который должен увеличивать каждый положительный элемент массива на 2, каждый отрицательный элемент массива заменить средним арифметическим максимального и минимального элементов.
Ребят выручайте горит лаба, мыслей по реализации нету,заранее благодарю
Решение задачи: «Описать класс для хранения массива чисел»
textual
Листинг программы
- using System;
- using System.Linq;
- using System.Collections.Generic;
- class MyArray
- {
- private int[] array;
- private int avgMinMax;
- private bool avgMinMaxIsObsolete;
- public MyArray(IEnumerable<int> en)
- {
- array = en.ToArray();
- avgMinMaxIsObsolete = true;
- }
- private int AvgMinMax
- {
- get
- {
- if (avgMinMaxIsObsolete)
- {
- avgMinMax = (array.Min() + array.Max()) / 2;
- avgMinMaxIsObsolete = false;
- }
- return avgMinMax;
- }
- }
- public static MyArray operator++(MyArray myArray)
- {
- for (int i = 0; i < myArray.array.Length; i++)
- {
- int elem = myArray.array[i];
- elem = elem < 0 ? myArray.AvgMinMax : elem + 2;
- myArray.array[i] = elem;
- }
- myArray.avgMinMaxIsObsolete = true;
- return myArray;
- }
- public override string ToString()
- {
- return String.Join(", ", array);
- }
- }
- class Program
- {
- public static void Main()
- {
- MyArray myArray = new MyArray(Enumerable.Repeat(new Random(), 20).Select(r => r.Next(-100, 101)));
- Console.WriteLine(myArray);
- myArray++;
- Console.WriteLine(myArray);
- myArray++;
- Console.WriteLine(myArray);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д