static void Main(string[] args) { Console.WriteLine("Выберите функцию: "); for (int i = 0; i < Functions.FuncsName.Length; ++i) { Console.WriteLine($"{i}: {Functions.FuncsName[i]}"); } int index = int.Parse(Console.ReadLine()); func = new Func(Functions.Funcs[index]); Console.WriteLine($"Указанный диапазон: {Functions.Diaps[index]}"); (double a, double b) = Functions.Diaps[index]; int n; //a = ReadDouble("Введите начало отрезка"); //b = ReadDouble("Введите конец отрезка"); n = (int)ReadDouble("Введите число разбиений"); RectangleIntegral rectangle = new RectangleIntegral(func, a, b, n); TrapeziumIntegral trapeziumIntegral = new TrapeziumIntegral(func, a, b, n); ParabolaIntegral parabolaIntegral = new ParabolaIntegral(func, a, b, n * 2); for (int i = 0; i < 3; ++i) { Console.WriteLine($"{RectangleTypeName[i]} прямоугольников: {rectangle.CalcIntegral((RectangleIntegralType)i):f5} с погрешностью: {rectangle.GetErrorDiap((RectangleIntegralType)i):f5}"); } Console.WriteLine($"Трапеция: {trapeziumIntegral.CalcIntegral():f5} с погрешностью: {trapeziumIntegral.GetErrorDiap():f5}"); Console.WriteLine($"Парабола: {parabolaIntegral.CalcIntegral():f5} с погрешностью: {parabolaIntegral.GetErrorDiap():f5}"); Console.ReadKey(); }
public double GetErrorDiap(RectangleIntegralType type) { RectangleIntegral temp = new RectangleIntegral(this.function, a, b, n * 2); return(Math.Abs(temp.CalcIntegral(type) - this.CalcIntegral(type))); }