/// <summary> /// Получение словаря с чатотой вхождения каждого элемента /// </summary> /// <param name="array">массив</param> /// <returns>словарь</returns> static Dictionary <int, int> getDictionary(CoolArray array) { Dictionary <int, int> returnMe = new Dictionary <int, int>(); for (int i = 0; i < array.Length; i++) { if (returnMe.ContainsKey(array[i])) { returnMe[array[i]]++; } else { returnMe.Add(array[i], 1); } } return(returnMe); }
/// <summary> /// Задача 3 /// а) Дописать класс для работы с одномерным массивом. Реализовать конструктор, создающий массив /// определенного размера и заполняющий массив числами от начального значения с заданным шагом. /// Создать свойство Sum, которое возвращает сумму элементов массива, метод Inverse, возвращающий /// новый массив с измененными знаками у всех элементов массива (старый массив, остается без /// изменений), метод Multi, умножающий каждый элемент массива на определённое число, свойство /// MaxCount, возвращающее количество максимальных элементов. /// б)** Создать библиотеку содержащую класс для работы с массивом. Продемонстрировать работу библиотеки /// е) *** Подсчитать частоту вхождения каждого элемента в массив (коллекция Dictionary<int,int>) /// Рассахатский /// </summary> static void Main() { MyHelper.MyHeader(text: "Задача 3. Класс для работы с одномерным массивом."); /////////////////////////////////////////////////////////////////////////////////// WriteLine("Пункт А. Добавленные члены в класс для работы с одномерным массивом."); MyHelper.GetNumberFromConsole(out int size, "Размер массива (int)", cancelEnable: false); MyHelper.GetNumberFromConsole(out int step, "Шаг заполнения массива (int)", cancelEnable: false); CoolArray coolArray = new CoolArray(size, step); WriteLine("Сгенерированный массив:"); for (int i = 0; i < coolArray.Length; i++) { Write($"{coolArray[i]} "); } WriteLine(); int sum = coolArray.Sum; WriteLine($"Сумма элементов массива = {sum}"); int[] arrInverse = coolArray.Inverse(); WriteLine("Измененный массив с измененными знаками у всех элементов:"); for (int i = 0; i < arrInverse.Length; i++) { Write($"{arrInverse[i]} "); } WriteLine(); CoolArray.Multi(arrInverse, 2); WriteLine("Этот же массив со значениями, перемноженными на число 2:"); for (int i = 0; i < arrInverse.Length; i++) { Write($"{arrInverse[i]} "); } WriteLine(); int maxCount = coolArray.MaxCount; WriteLine($"Количество максимальных элементов: {maxCount}"); MyHelper.MyPause(); /////////////////////////////////////////////////////////////////////////////////// WriteLine("Пункт Б. Библиотека с классом для работы с массивом."); CoolLibArray coolLibArray = new CoolLibArray(30); WriteLine("Сгенерированный массив с помощью библиотеки:"); for (int i = 0; i < coolLibArray.Length; i++) { Write($"{coolLibArray[i]} "); } WriteLine(); WriteLine($"Сумма элементов массива = {coolLibArray.Sum}"); WriteLine($"Количество максимальных элементов: {coolLibArray.MaxCount}"); MyHelper.MyPause(); /////////////////////////////////////////////////////////////////////////////////// WriteLine("Пункт В. Подсчитать частоту вхождения каждого элемента в массив."); CoolArray coolDictArray = new CoolArray(30); WriteLine("Сгенерированный массив с помощью библиотеки:"); for (int i = 0; i < coolDictArray.Length; i++) { Write($"{coolLibArray[i]} "); } WriteLine(); WriteLine("Частота вхождения каждого элемента в этом массиве:"); Dictionary <int, int> dict = getDictionary(coolDictArray); foreach (var item in dict) { Write($"{item.Key}-{item.Value} "); } /////////////////////////////////////////////////////////////////////////////////// MyHelper.MyFooter(); }