Удвоение в массиве всех вхождений элементов, расположенных на четных(0-четное)позициях (DublicateOnEvenPos() - C#
Формулировка задачи:
Помогите, не знаю, как запилить прогу
Задание
Удвоение в массиве всех вхождений элементов, расположенных на четных (0-четное) позициях (DublicateOnEvenPos()).
Массив
Листинг программы
- namespace DynamicTypes
- {
- class DynamicArray<T>
- {
- /// <summary>
- /// Закрытый массив, в котором храним данные
- /// </summary>
- T[] array;
- /// <summary>
- /// Свойство, показывающее размер массива в памяти
- /// </summary>
- public int Capacity
- {
- get
- {
- return array.Length;
- }
- }
- /// <summary>
- /// Свойство, показывающее число фактически используемых элементов
- /// </summary>
- public int Count { get; private set; }
- /// <summary>
- /// Конструктор по умолчанию, создающий массив из 4-х элементов
- /// </summary>
- public DynamicArray()
- {
- array = new T[4];
- Count = 0;
- }
- /// <summary>
- /// Метод добавления элемента
- /// </summary>
- /// <param name="item">добавляемый элемент</param>
- public void Add(T item)
- {
- // если дошли до конца массива
- if (Count == Capacity)
- {
- // создаем временный массив в 2 раза большего размера
- T[] tmp = new T[Capacity * 2];
- // копируем в него исходный массив
- for (int i = 0; i < Count; i++)
- {
- tmp[i] = array[i];
- }
- // переставляем ссылки (память старого массива будет позднее собрана сборщиком
- // мусора)
- array = tmp;
- }
- // добавляем элемент в конец массива
- array[Count] = item;
- Count++;
- }
- /// <summary>
- /// Свойство-индексатор для получения доступа к элементам массива
- /// </summary>
- /// <param name="n">порядковый номер элемента, с которым будет выполняться
- /// действие</param>
- public T this[int n]
- {
- get
- {
- // контроллируем выход за логическую границу массива. Выход за фактическую
- // границу (n < 0) or (n >= array.Length) контроллирует среда выполнения
- if (n >= Count)
- throw new IndexOutOfRangeException("Выход за границу массива");
- return array[n];
- }
- set
- {
- if (n >= Count)
- throw new IndexOutOfRangeException("Выход за границу массива");
- array[n] = value;
- }
- }
- }
- }
Решение задачи: «Удвоение в массиве всех вхождений элементов, расположенных на четных(0-четное)позициях (DublicateOnEvenPos()»
textual
Листинг программы
- using System;
- using System.Linq;
- class Program
- {
- public static void Main()
- {
- int[] a = new int[] { 1, 2, 3, 4, 5 };
- int[] b = a.SelectMany((x, i) => Enumerable.Repeat(x, 2 - i % 2)).ToArray();
- Console.WriteLine(String.Join(", ", b));
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д