Разработать консольное приложение, в котором описать класс, работающий с одномерным массивом - C#
Формулировка задачи:
Здравствуйте помогите пожалуйста решить задачу с массивами, читаю кучу литературы не помогло не понимаю ...
Постановка задачи
Требуется разработать консольное приложение, в котором описать класс, работающий с одномерным массивом.
Класс должен содержать:
- конструктор, заполняющий заданное в его параметре количество элементов массива случайными числами в заданном диапазоне;
- методы, описанные в задании;
- свойство, доступное только для чтения, описанное в задании;
Вывод на экран массива, вывод результатов выполнения методов и значения, возвращаемого свойством выполнять в методе Main.
Вариант для решения
Класс описывает одномерный массив, состоящий из n вещественных элементов со значениями в диапазоне от (-4.5 до 4.5).
Методы класса должны вычислять:
- сумму положительных элементов массива;
- произведение элементов массива, расположенных между максимальным по модулю и минимальным по модулю элементами.
Свойство должно получать максимальный элемент массива.
Решение задачи: «Разработать консольное приложение, в котором описать класс, работающий с одномерным массивом»
textual
Листинг программы
class Program { static void Main() { Arr a = new Arr(15); a.Print(); Console.WriteLine("\nMax={0} Sum={1} Mul={2}", a.Max, a.Sum(), a.Mul()); Console.ReadKey(); } } class Arr { double[] a; double max; public double Max { get { return max; } } public Arr(uint n) { a = new double[n]; max = double.NaN; Random r = new Random(); for (int i = 0; i < n; i++) { a[i] = r.Next(91) / 10d - 4.5; if (i == 0) max = a[i]; else if (a[i] > max) max = a[i]; } } public double Mul() { double m = 0; int imin = 0, imax = 0; for (int i = 0; i < a.Length; i++) { if (Math.Abs(a[imin]) > Math.Abs(a[i])) imin = i; if (Math.Abs(a[imax]) < Math.Abs(a[i])) imax = i; } if (Math.Abs(imax - imin) > 2) { int di = imin < imax ? 1 : -1; m = a[imin + di]; for (int i = imin + 2 * di; i != imax; i += di) m *= a[i]; } return m; } public double Sum() { double s = 0; for (int i = 0; i < a.Length; i++) if (a[i] > 0) s += a[i]; return s; } public void Print() { for (int i = 0; i < a.Length; i++) Console.Write("{0} ", a[i]); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д