Перегрузки операторов для класса Array - C#

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

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

Здравствуйте.Помогите разобраться с перегрузками,пожалуйста. Перегрузки: 1)операции ++ (– –): одновременно увеличивает (уменьшает) значение всех элементов массива на 1; 2)операции !: возвращает значение true, если элементы массива не упорядочены по возрастанию, иначе false; 3)операции бинарный *: перемножает значения поэлементно двух массивов; 1 работает 2 и 3 делала по аналогии и не могу разобраться,правильно ли их написала и добавить эти операторы в программу.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace lab2
  6. {
  7. class Array
  8. {
  9. int[] intArray; //объявляем первое поле
  10. int n; //объявляем второе поле
  11. public Array(int[] a, int b) //создаем конструктор
  12. {
  13. intArray = a;
  14. n = b;
  15. }
  16. public void Razmer() //создаем метод для установки диапазона чисел от -100 до 100
  17. {
  18. Console.Write("Введите элементы массива: ");
  19. for (int i = 0; i < n; i++)
  20. intArray[i] = int.Parse(Console.ReadLine()); //заполняем массив
  21. }
  22. public void Print() //создаем метод для вывода массива на экран
  23. {
  24. Console.Write("Массив: ");
  25. int count = 0; //создаем счетчик для проверки пустоты массива
  26. for (int i = 0; i < n; i++)
  27. {
  28. Console.Write(intArray[i] + " "); //выводим массив
  29. count++;
  30. }
  31. if (count == 0)
  32. Console.WriteLine("Массив пуст");
  33. }
  34. public void Sortirovka() //создаем метод для сортировки
  35. {
  36. Console.WriteLine();
  37. Console.WriteLine("Отсортированный массив:");
  38. for (int i = 0; i < n; i++) //сортируем массив пузырьковым методом
  39. {
  40. for (int j = 0; j < n - 1; j++) //берем по 2 элемента и сравниваем их
  41. {
  42. if (intArray[j] > intArray[j + 1]) //если первый элемент больше второго, то
  43. {
  44. int z = intArray[j]; //записываем первый элемент в новую переменную
  45. intArray[j] = intArray[j + 1]; //заменяем первый элемент вторым
  46. intArray[j + 1] = z; //заменяем второй элемент первым, в итоге мы поменяли их местами, и т.д.
  47. }
  48. }
  49. }
  50. }
  51. public static Array operator ++(Array s) //создаем перегрузку для прибавления единицы к каждому элементу
  52. {
  53. Console.WriteLine();
  54. Console.WriteLine("Перегрузка ++");
  55. for (int i = 0; i < s.n; i++)
  56. s.intArray[i] = s.intArray[i] + 1; //прибавляем 1
  57. return s;
  58. }
  59. public static Array operator --(Array s) //создаем перегрузку для вычитания единицы от каждого элемента
  60. {
  61. Console.WriteLine();
  62. Console.WriteLine("Перегрузка --");
  63. for (int i = 0; i < s.n; i++)
  64. s.intArray[i] = s.intArray[i] - 1; //вычитаем 1
  65. return s;
  66. }
  67.  
  68. public static bool operator !(Array s)
  69. {
  70. Console.WriteLine();
  71. Console.WriteLine("!");
  72. for (int i = 0; i < s.intArray.Length - 1; i++)
  73. {
  74. if (s.intArray[i] > s.intArray[i + 1])
  75. {
  76. return false;
  77. }
  78. }
  79. return true;
  80. }
  81. public static Array operator *(Array s, int K)
  82. {
  83. Console.WriteLine();
  84. Console.WriteLine("*");
  85. for (int i = 0; i < s.intArray.Length; i++)
  86. {
  87. s.intArray[i] *= K;
  88. }
  89. return s;
  90. }
  91.  
  92. }
  93. class Program
  94. {
  95. static void Main(string[] args)
  96. {
  97. int N;
  98. Console.WriteLine("Введите размерность массива ");
  99. N = int.Parse(Console.ReadLine());
  100. int[] A = new int[N];
  101. Array massiv = new Array(A, N); //создаем объект
  102. massiv.Razmer(); //вызываем метод
  103. massiv.Print(); //выводим массив
  104. Array s = new Array(A, A.Length); //создаем новый объект для нового массива
  105.  
  106. s.Sortirovka(); //вызываем метод сортировки
  107. s.Print(); //выводим массив
  108. for (int i = 0; i < 1; i++) //вызываем перегрузку, пока каждый элемент не увеличится на 1
  109. {
  110. s++; //вызываем перегрузку ++
  111. s.Print(); //выводим измененный массив
  112. }
  113. for (int i = 0; i < 1; i++) //вызываем перегрузку, пока каждый элемент не уменьшится на 1
  114. {
  115. s--; //вызываем перегрузку --
  116. s.Print(); //выводим измененный массив
  117. }
  118. Console.ReadLine();
  119. }
  120. }
  121. }

Решение задачи: «Перегрузки операторов для класса Array»

textual
Листинг программы
  1.         public static bool operator !(Array s)
  2.         {
  3.             Console.WriteLine();
  4.             Console.WriteLine("!");
  5.             for (int i = 0; i < s.intArray.Length - 1; i++)
  6.             {
  7.                 if (s.intArray[i] > s.intArray[i + 1])
  8.                 {
  9.                     return true;
  10.                 }
  11.             }
  12.             return false;
  13.         }

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


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

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

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

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

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

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