예제 #1
0
        public static Mas operator ++(Mas m)
        {
            Mas m2 = m;

            for (int i = 0; i < m.ArrSize; i++)
            {
                m2.arr[i] += 10;
            }
            return(m2);
        }
예제 #2
0
        public static Mas operator -(Mas m1, Mas m2)
        {
            Mas resMas = new Mas(m1.ArrSize);

            for (int i = 0; i < m1.ArrSize; i++)
            {
                resMas.arr[i] = m1.arr[i] - m2.arr[i];
            }
            return(resMas);
        }
예제 #3
0
 public bool CompareDim(Mas m)
 {
     if (ArrSize == m.ArrSize)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
예제 #4
0
        public static Mas DeleteNegative(this Mas m)
        {
            List <int> list = new List <int>();

            for (int i = 0; i < m.ArrSize; i++)
            {
                if (m.arr[i] >= 0)
                {
                    list.Add(m.arr[i]);
                }
            }
            int count  = list.Count;
            Mas newMas = new Mas(count);

            newMas.arr = list.ToArray <int>();
            return(newMas);
        }
예제 #5
0
        public static int Difference(Mas m)
        {
            int dif;
            int min = m.arr[0];
            int max = m.arr[0];

            for (int i = 1; i < m.ArrSize; i++)
            {
                if (min > m.arr[i])
                {
                    min = m.arr[i];
                }
                if (max < m.arr[i])
                {
                    max = m.arr[i];
                }
            }
            return(dif = max - min);
        }
예제 #6
0
        static void Main(string[] args)
        {
            Console.WriteLine("***** Тест массива *****");
            Mas m1 = new Mas();

            m1.Print();
            m1.Fill();
            m1.Print();

            Console.WriteLine("***** Тест перегрузки операций *****");
            Console.WriteLine("Сумма/разность");
            Mas m2 = new Mas(5, true);
            Mas m3 = new Mas(6, true);

            m2.Print();
            m3.Print();
            if (m2.CompareDim(m3))
            {
                (m2 + m3).Print();
            }
            else
            {
                Console.WriteLine("Ошибка операции. Размеры массивов различны.");
            }

            Mas m4 = new Mas(5, true);
            Mas m5 = new Mas(5, true);

            m4.Print();
            m5.Print();
            if (m4.CompareDim(m4))
            {
                (m4 - m5).Print();
            }
            else
            {
                Console.WriteLine("Ошибка операции. Размеры массивов различны.");
            }
            Console.WriteLine("Умножение массивов");
            Mas m9  = new Mas(5, true);
            Mas m10 = new Mas(5, true);

            m9.Print();
            m10.Print();
            if (m9.CompareDim(m10))
            {
                Console.WriteLine(m9 * m10);
            }
            else
            {
                Console.WriteLine("Ошибка операции. Размеры массивов различны.");
            }
            Console.WriteLine("Сравнение");
            Mas m6 = new Mas(3, true);
            Mas m7 = new Mas(3, true);

            m6.Print();
            m7.Print();
            Console.WriteLine(m6.CountAbs());
            Console.WriteLine(m7.CountAbs());
            Console.WriteLine(m6 > m7);
            Console.WriteLine(m6 < m7);
            Console.WriteLine("Инкремент");
            Mas m8 = new Mas(5, true);

            m8.Print();
            m8++.Print();
            Console.WriteLine("Условные");
            Mas m11 = new Mas(5, true);

            m11.Print();
            if (m11)
            {
                Console.WriteLine("Истина");
            }
            else
            {
                Console.WriteLine("Ложь");
            }
            Console.WriteLine("Преобразование типа");
            Mas m12 = new Mas(4, true);

            m12.Print();
            Console.WriteLine(m12.CountAbs());
            Console.WriteLine((int)m12);
            Console.WriteLine("Сравнение массивов");
            Mas m13 = new Mas(3, false);
            Mas m14 = new Mas(3, false);

            m13.Print();
            Console.WriteLine(m13.CountAbs());
            m14.Print();
            Console.WriteLine(m14.CountAbs());
            if (m13 == m14)
            {
                Console.WriteLine("Массивы равны");
            }
            else
            {
                Console.WriteLine("Массивы не равны");
            }
            Console.WriteLine("***** Тест вложенного класса *****");

            Mas m15 = new Mas(5, true);

            Mas.Date date = new Mas.Date(m15);//передаем объект вмещающего класса, чтобы иметь доступ к родительскому классу
            Console.WriteLine("Дата создания объекта класса Date: " + date.DateStr);
            Console.WriteLine("Вмещающий класс класса Date: " + date.parent);

            Console.WriteLine("***** Статический класс *****");

            Mas m16 = new Mas(5, true);
            Mas m17 = new Mas(5, true);

            m16.Print();
            m17.Print();
            Mas m18 = StatisticOperation.Sum(m16, m17);

            m18.Print();
            Console.WriteLine(StatisticOperation.Difference(m18));
            Console.WriteLine("Число элементов класса: " + StatisticOperation.getNumOfInstances());

            Console.WriteLine("***** Вложенный объект *****");

            Mas.Owner IOwner = new Mas.Owner();
            Console.WriteLine(Mas.Owner.ID);
            Console.WriteLine(Mas.Owner.Name);
            Console.WriteLine(Mas.Owner.Organization);

            Console.WriteLine("***** Методы расширения *****");

            Console.Write("Введите строку: ");
            string extensionStr = Console.ReadLine();

            Console.Write("Введите символ: ");
            char ch = (char)Console.Read();

            Console.WriteLine("Количество символов " + ch + " равно " + extensionStr.howSymbols(ch));

            Mas m19 = new Mas(10, true);

            m19.Print();
            StatisticOperation.DeleteNegative(m19).Print();
        }
예제 #7
0
 public Date(Mas parentClass)
 {
     parent  = parentClass;
     DateStr = Convert.ToString(DateTime.Now);
 }