public static Mas operator ++(Mas m) { Mas m2 = m; for (int i = 0; i < m.ArrSize; i++) { m2.arr[i] += 10; } return(m2); }
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); }
public bool CompareDim(Mas m) { if (ArrSize == m.ArrSize) { return(true); } else { return(false); } }
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); }
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); }
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(); }
public Date(Mas parentClass) { parent = parentClass; DateStr = Convert.ToString(DateTime.Now); }