Удвоение в массиве всех вхождений элементов, расположенных на четных(0-четное)позициях (DublicateOnEvenPos() - C#

Узнай цену своей работы

Формулировка задачи:

Помогите, не знаю, как запилить прогу Задание Удвоение в массиве всех вхождений элементов, расположенных на четных (0-четное) позициях (DublicateOnEvenPos()). Массив
Листинг программы
  1. namespace DynamicTypes
  2. {
  3. class DynamicArray<T>
  4. {
  5. /// <summary>
  6. /// Закрытый массив, в котором храним данные
  7. /// </summary>
  8. T[] array;
  9. /// <summary>
  10. /// Свойство, показывающее размер массива в памяти
  11. /// </summary>
  12. public int Capacity
  13. {
  14. get
  15. {
  16. return array.Length;
  17. }
  18. }
  19. /// <summary>
  20. /// Свойство, показывающее число фактически используемых элементов
  21. /// </summary>
  22. public int Count { get; private set; }
  23. /// <summary>
  24. /// Конструктор по умолчанию, создающий массив из 4-х элементов
  25. /// </summary>
  26. public DynamicArray()
  27. {
  28. array = new T[4];
  29. Count = 0;
  30. }
  31. /// <summary>
  32. /// Метод добавления элемента
  33. /// </summary>
  34. /// <param name="item">добавляемый элемент</param>
  35. public void Add(T item)
  36. {
  37. // если дошли до конца массива
  38. if (Count == Capacity)
  39. {
  40. // создаем временный массив в 2 раза большего размера
  41. T[] tmp = new T[Capacity * 2];
  42. // копируем в него исходный массив
  43. for (int i = 0; i < Count; i++)
  44. {
  45. tmp[i] = array[i];
  46. }
  47. // переставляем ссылки (память старого массива будет позднее собрана сборщиком
  48. // мусора)
  49. array = tmp;
  50. }
  51. // добавляем элемент в конец массива
  52. array[Count] = item;
  53. Count++;
  54. }
  55. /// <summary>
  56. /// Свойство-индексатор для получения доступа к элементам массива
  57. /// </summary>
  58. /// <param name="n">порядковый номер элемента, с которым будет выполняться
  59. /// действие</param>
  60. public T this[int n]
  61. {
  62. get
  63. {
  64. // контроллируем выход за логическую границу массива. Выход за фактическую
  65. // границу (n < 0) or (n >= array.Length) контроллирует среда выполнения
  66. if (n >= Count)
  67. throw new IndexOutOfRangeException("Выход за границу массива");
  68. return array[n];
  69. }
  70. set
  71. {
  72. if (n >= Count)
  73. throw new IndexOutOfRangeException("Выход за границу массива");
  74. array[n] = value;
  75. }
  76. }
  77. }
  78. }

Решение задачи: «Удвоение в массиве всех вхождений элементов, расположенных на четных(0-четное)позициях (DublicateOnEvenPos()»

textual
Листинг программы
  1. using System;
  2. using System.Linq;
  3.  
  4. class Program
  5. {
  6.     public static void Main()
  7.     {
  8.         int[] a = new int[] { 1, 2, 3, 4, 5 };
  9.         int[] b = a.SelectMany((x, i) => Enumerable.Repeat(x, 2 - i % 2)).ToArray();
  10.         Console.WriteLine(String.Join(", ", b));
  11.     }
  12. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы