// Операция унарный Минус. public static TPoly operator -(TPoly a) { TPoly c = new TPoly(); for (int i = 0; i < a.Poly.Count; i++) { c.Poly.Add(a.Poly[i].Minus().Copy()); } return(c); }
// Операция Умножить. public static TPoly operator *(TPoly a, TPoly b) { TPoly c = new TPoly(); for (int i = 0; i < a.Poly.Count; i++) { c += b.MulNum(a.Poly[i]); } c.Invar(); return(c); }
//Умножение //полинома на одночлен. public TPoly MulNum(TMember Num) { TPoly c = new TPoly(); for (int i = 0; i < this.Poly.Count; i++) { c.Poly.Add(this.Poly[i] * Num); } c.Invar(); return(c); }
//Операция Сложить. public static TPoly operator +(TPoly a, TPoly b) { TPoly c = new TPoly(); for (int i = 0; i < a.Poly.Count; i++) { c.Poly.Add(a.Poly[i].Copy()); } for (int i = 0; i < b.Poly.Count; i++) { c.Poly.Add(b.Poly[i].Copy()); } c.Invar(); return(c); }
static void Main(string[] args) { // Создаем одночлен m TMember m = new TMember(1, 2); Console.WriteLine("m = " + m.ToString()); // Создаем одночлен d TMember d = new TMember(1, 2); Console.WriteLine("d = " + d.ToString()); // Сравнение степеней одночленов Console.WriteLine("Сравнение степеней m и d = " + m.CompareTo(d)); // Создаем одночлен p TMember p = new TMember(2, 2); Console.WriteLine("p = " + p.ToString()); // Дифференцируем одночлен p Console.WriteLine("Дифференцируем p = " + p.Diff().ToString()); // Сравниваем два одночлена TMember a = new TMember(2, 2); Console.WriteLine("Сравнение " + m.ToString() + " с " + a.ToString() + m.Eq(a)); Console.WriteLine("Сравнение " + p.ToString() + " с " + a.ToString() + p.Eq(a)); // Создание нулевого одночлена TMember b = new TMember(); // Проверка на ноль одночлена Console.WriteLine("Проверка на 0 " + b.ToString() + TMember.EqZer0(b)); Console.WriteLine("Проверка на 0 " + a.ToString() + TMember.EqZer0(a)); // Вычисление значения одночлена Console.WriteLine("Вычисление значеня " + a.ToString() + "при 2ух = " + a.Value(2)); // Создание одночлена путем копирования TMember c = b.Copy(); Console.WriteLine("Создание переменной путем копирования: " + c.ToString()); // эээээ ну типа сложение двух одночленов, но на деле там просто коэффициенты //суммируются делал зайцев TMember e = m.Add(d); Console.WriteLine("Сложение двух одночленов " + e.ToString()); // делаем одночлен с противоположным знаком... на -1 домножаем короч TMember f = m.Minus(); Console.WriteLine("Делаем одночлен с противоположным знаком: " + f.ToString()); // Первое уравнение TPoly firstEquation = new TPoly(); firstEquation.Add(new TMember(2, 2)); firstEquation.Add(new TMember(2, 1)); firstEquation.Add(new TMember(4, -7)); firstEquation.Add(new TMember(0, 0)); //Console.WriteLine(firstEquation.ToString()); //firstEquation.Invar(); Console.WriteLine("a = " + firstEquation.ToString()); // Второе уравнение TPoly secondEquation = new TPoly(); secondEquation.Add(new TMember(4, 1)); secondEquation.Add(new TMember(2, 3)); secondEquation.Add(new TMember(7, 2)); //secondEquation.Invar(); Console.WriteLine("b = " + secondEquation.ToString()); // Сложение двух уравнений Console.WriteLine("a+b = " + (firstEquation + secondEquation).ToString()); // Перемножение двух уравнений Console.WriteLine(); Console.WriteLine("a*b = " + (firstEquation * secondEquation).ToString()); // Разность двух уравнений Console.WriteLine(); Console.WriteLine("a-b = " + (firstEquation - secondEquation).ToString()); // Умножение числа на полином Console.WriteLine(); Console.WriteLine("a*3 = " + (firstEquation.MulNum(new TMember(0, 3))).ToString()); // Дифференцируем Console.WriteLine(); Console.WriteLine("preddiff = " + firstEquation.ToString()); Console.WriteLine("diff = " + firstEquation.Diff().ToString()); // Вычислим при определенном Х Console.WriteLine(); Console.WriteLine("result(3) = " + firstEquation.Eval(3)); // Сравнение двух полиномов Console.WriteLine(); Console.WriteLine("Сравним на РАВЕНСТВО " + firstEquation.ToString() + " и " + secondEquation.ToString()); Console.WriteLine(firstEquation == secondEquation); // Сравнение двух полиномов Console.WriteLine(); Console.WriteLine("Сравним на НЕРАВЕНСТВО " + firstEquation.ToString() + " и " + secondEquation.ToString()); Console.WriteLine(firstEquation != secondEquation); // Сравнение двух полиномов secondEquation = firstEquation; Console.WriteLine(); Console.WriteLine("Сравним на РАВЕНСТВО " + firstEquation.ToString() + " и " + secondEquation.ToString()); Console.WriteLine(firstEquation == secondEquation); // Сравнение двух полиномов Console.WriteLine(); Console.WriteLine("Сравним на НЕРАВЕНСТВО " + firstEquation.ToString() + " и " + secondEquation.ToString()); Console.WriteLine(firstEquation != secondEquation); }