Разработать консольное приложение, в котором описать класс, работающий с одномерным массивом - 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]);
}
}