Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2017
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.49 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace laba5
  8. {
  9. class Massiv
  10. { /// <summary>
  11. /// Поле с элементами массива
  12. /// </summary>
  13. private int[] _a;
  14. /// <summary>
  15. /// Поле с числами элементов массива
  16. /// </summary>
  17. private int _n;
  18. /// <summary>
  19. /// Метод ввода массива
  20. /// </summary>
  21. public void Input()
  22. {
  23. _a = new int[_n]; //выделили память для массива
  24. for (int i = 0; i < _n; i++)
  25. {
  26. Console.Write("Введите " + (i + 1) + " элемент массива: ");
  27. _a[i] = Control();
  28. }
  29. }
  30. /// <summary>
  31. /// Метод вывода массива на экран
  32. /// </summary>
  33. public void Print()
  34. {
  35. for (int i = 0; i < _n; i++)
  36. {
  37. Console.Write(_a[i] + "\t");
  38. }
  39. }
  40. /// <summary>
  41. /// Метод нахождения суммы элементов массива с нечётными номерами
  42. /// </summary>
  43. /// <returns></returns>
  44. public double Sum()
  45. {
  46. double sum = 0;
  47. for (int i = 0; i < _n; i++)
  48. {
  49. if (i % 2 == 0) sum += _a[i];
  50. }
  51. return sum;
  52. }
  53. public void Squeeze()
  54. {
  55. for (int i = 0; i < _n; i++)
  56. if (Math.Abs(_a[i]) < 1) //всем элементам, которые по модулю меньше 1 присвоили 0
  57. _a[i] = 0;
  58. for (int i = 0; i < _n - 1; i++)
  59. if (_a[i] == 0)
  60. {
  61. _a[i] = _a[i + 1];
  62. _a[i + 1] = 0;
  63. }
  64. }
  65. public int Control()
  66. {
  67. string str = Console.ReadLine();
  68. int x;
  69. while (!int.TryParse(str, out x))
  70. {
  71. Console.WriteLine("Повторите ввод");
  72. str = Console.ReadLine();
  73. }
  74. return x;
  75. }
  76. public double SumBetween()
  77. {
  78. int i = 0;
  79. while (i < _n && _a[i] >= 0)
  80. i++;
  81. int first;
  82. if (i == _n)
  83. {
  84. throw new ArgumentOutOfRangeException();
  85. }
  86. else
  87. {
  88. first = i;
  89. }
  90. i = _n - 1;
  91. while (i >= 0 && _a[i] >= 0)
  92. i--;
  93. int last;
  94. if (i == -1)
  95. {
  96. throw new ArgumentOutOfRangeException();
  97. }
  98. else
  99. {
  100. last = i;
  101. }
  102. int sum = 0;
  103. for (int j = first + 1; j < last; j++)
  104. sum += _a[j];
  105. return sum;
  106. }
  107.  
  108. static void Main(string[] args)
  109. {
  110. Massiv Mass = new Massiv();
  111. try
  112. {
  113. Console.Write("Введите число элементов массива: ");
  114. Mass._n = Mass.Control();
  115. Mass.Input();
  116. Mass.Print();
  117. if (Mass._n != 0)
  118. {
  119. Console.WriteLine("\n\nСумма элементов массива с нечетными номерами равна: " + Mass.Sum());
  120. Console.WriteLine("\nСумма элементов массива, расположенных между первым и последним \nотрицательным элементом равна: " + Mass.SumBetween());
  121. Console.WriteLine();
  122. Mass.Squeeze();
  123. Mass.Print();
  124. Console.WriteLine();
  125. }
  126. else Console.WriteLine("Число элементов массива должно быть больше 0, попробуйте еще раз.");
  127. }
  128. catch
  129. {
  130. Console.WriteLine("Ошибка!");
  131. }
  132. Console.WriteLine("Программа завершена. Нажмите любую клавишу...");
  133. Console.ReadKey();
  134. }
  135. }
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement