Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2017, 22:35   #1
iyoulka
 
Регистрация: 29.04.2016
Сообщений: 6
По умолчанию Перегрузки в 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();
        }
    }
}
iyoulka вне форума Ответить с цитированием
Старый 17.04.2017, 18:31   #2
hoolygan
Пользователь
 
Регистрация: 11.04.2017
Сообщений: 64
По умолчанию

Вот те подключения, что стоят, ими можно пользоваться, или просто вызываются? Имею в виду linq? И какое точно задание в лабах, а то увеличение и уменьшение через ж получается. Зачем объект создавать, когда можно массив простой в параметр передать-то?
hoolygan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать реализацию перегрузки функции Miha2059 Общие вопросы C/C++ 1 06.03.2015 09:32
Функция перегрузки bujlka Помощь студентам 3 02.12.2012 15:44
Изьятие данных из формы без перегрузки Евгений Лазаренко JavaScript, Ajax 2 12.11.2012 20:59
Сложение двух string методом перегрузки + MyQwErTy Помощь студентам 4 16.10.2012 22:25
Классы+перегрузки mo_Ouse C# (си шарп) 0 05.06.2012 22:21