/// <summary> /// Метод, выводящий таблицу значений функции в промежутке от х1 до х2. /// </summary> /// <param name="F">Функция, принимающая два аргумента типа double и возвращающая значение double</param> /// <param name="a">Константа типа "double"</param> /// <param name="x1">Значение, начиная с которого будет выводиться таблица</param> /// <param name="x2">Значение, до которого будет выводиться таблица</param> public static void Table(Fun2 F, double a, double x1, double x2) { Console.WriteLine("----- X ----- Y -----"); while (x1 <= x2) { Console.WriteLine("| {0,8:0.000} | {1,8:0.000} |", x1, F?.Invoke(a, x1) /*F(a)*/); x1 += 1; } Console.WriteLine("---------------------"); }
public static void Table2(Fun2 F, double a, double x, double b, double h) { Console.WriteLine("----- A ----- X ----- Y -----"); while (a <= b) { Console.WriteLine("| {0,8:0.000} | {1,8:0.000} | {2,8:0.000} ", a, x, F?.Invoke(a, x)); double x1 = x + h; while (x1 <= b) { Console.WriteLine("| {0,8:0.000} | {1,8:0.000} | {2,8:0.000} ", a, x1, F?.Invoke(a, x1)); x1 += h; } a += h; } Console.WriteLine("-----------------------------"); }
private void CalAndPush(Fun2 fun) { IConstant arg2 = core.PopOperand(); IConstant arg1 = core.PopOperand(); core.PushOperand(fun.Invoke(arg1, arg2)); }