Перегрузки операторов для класса Array - C#
Формулировка задачи:
Здравствуйте.Помогите разобраться с перегрузками,пожалуйста.
Перегрузки:
1)операции ++ (– –): одновременно увеличивает (уменьшает) значение всех элементов массива на 1;
2)операции !: возвращает значение true, если элементы массива не упорядочены по возрастанию, иначе false;
3)операции бинарный *: перемножает значения поэлементно двух массивов;
1 работает
2 и 3 делала по аналогии и не могу разобраться,правильно ли их написала и добавить эти операторы в программу.
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace lab2
- {
- class Array
- {
- int[] intArray; //объявляем первое поле
- int n; //объявляем второе поле
- public Array(int[] a, int b) //создаем конструктор
- {
- intArray = a;
- n = b;
- }
- public void Razmer() //создаем метод для установки диапазона чисел от -100 до 100
- {
- Console.Write("Введите элементы массива: ");
- for (int i = 0; i < n; i++)
- intArray[i] = int.Parse(Console.ReadLine()); //заполняем массив
- }
- public void Print() //создаем метод для вывода массива на экран
- {
- Console.Write("Массив: ");
- int count = 0; //создаем счетчик для проверки пустоты массива
- for (int i = 0; i < n; i++)
- {
- Console.Write(intArray[i] + " "); //выводим массив
- count++;
- }
- if (count == 0)
- Console.WriteLine("Массив пуст");
- }
- public void Sortirovka() //создаем метод для сортировки
- {
- Console.WriteLine();
- Console.WriteLine("Отсортированный массив:");
- for (int i = 0; i < n; i++) //сортируем массив пузырьковым методом
- {
- for (int j = 0; j < n - 1; j++) //берем по 2 элемента и сравниваем их
- {
- if (intArray[j] > intArray[j + 1]) //если первый элемент больше второго, то
- {
- int z = intArray[j]; //записываем первый элемент в новую переменную
- intArray[j] = intArray[j + 1]; //заменяем первый элемент вторым
- intArray[j + 1] = z; //заменяем второй элемент первым, в итоге мы поменяли их местами, и т.д.
- }
- }
- }
- }
- public static Array operator ++(Array s) //создаем перегрузку для прибавления единицы к каждому элементу
- {
- Console.WriteLine();
- Console.WriteLine("Перегрузка ++");
- for (int i = 0; i < s.n; i++)
- s.intArray[i] = s.intArray[i] + 1; //прибавляем 1
- return s;
- }
- public static Array operator --(Array s) //создаем перегрузку для вычитания единицы от каждого элемента
- {
- Console.WriteLine();
- Console.WriteLine("Перегрузка --");
- for (int i = 0; i < s.n; i++)
- s.intArray[i] = s.intArray[i] - 1; //вычитаем 1
- return s;
- }
- public static bool operator !(Array s)
- {
- Console.WriteLine();
- Console.WriteLine("!");
- for (int i = 0; i < s.intArray.Length - 1; i++)
- {
- if (s.intArray[i] > s.intArray[i + 1])
- {
- return false;
- }
- }
- return true;
- }
- public static Array operator *(Array s, int K)
- {
- Console.WriteLine();
- Console.WriteLine("*");
- for (int i = 0; i < s.intArray.Length; i++)
- {
- s.intArray[i] *= K;
- }
- return s;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- int N;
- Console.WriteLine("Введите размерность массива ");
- N = int.Parse(Console.ReadLine());
- int[] A = new int[N];
- Array massiv = new Array(A, N); //создаем объект
- massiv.Razmer(); //вызываем метод
- massiv.Print(); //выводим массив
- Array s = new Array(A, A.Length); //создаем новый объект для нового массива
- s.Sortirovka(); //вызываем метод сортировки
- s.Print(); //выводим массив
- for (int i = 0; i < 1; i++) //вызываем перегрузку, пока каждый элемент не увеличится на 1
- {
- s++; //вызываем перегрузку ++
- s.Print(); //выводим измененный массив
- }
- for (int i = 0; i < 1; i++) //вызываем перегрузку, пока каждый элемент не уменьшится на 1
- {
- s--; //вызываем перегрузку --
- s.Print(); //выводим измененный массив
- }
- Console.ReadLine();
- }
- }
- }
Решение задачи: «Перегрузки операторов для класса Array»
textual
Листинг программы
- public static bool operator !(Array s)
- {
- Console.WriteLine();
- Console.WriteLine("!");
- for (int i = 0; i < s.intArray.Length - 1; i++)
- {
- if (s.intArray[i] > s.intArray[i + 1])
- {
- return true;
- }
- }
- return false;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д