tarsep
Функция объявлена как локальная, эту фичу ввели в c# 7.0 и если у тебя старее то может не компилироваться. Попробуй так: Enumerable .Range(0, int.MaxValue) .Select(i => a + h * i) .TakeWhile(n => n <= b + 0E-10) .ToList() .ForEach(x => Console.WriteLine($"x = {x:0.000} y = {(x < 0 ? -4 : x < 1 ? (x * x + 3 * x + 4) : 2):0.00}"));
Answers & Comments
Verified answer
Буду исходить из того что a, b и h - это double и a < b.
Сначала напишем функцию, вычисляющую значение рассматриваемой функции:
double y(double x) =>
x < 0 ? -4 :
x < 1 ? (x * x + 3 * x + 4) :
2;
Теперь одним LINQ выражением выведем на экран значения x и y для заданного диапазона x:
Enumerable
.Range(0, int.MaxValue)
.Select(i => a + h * i)
.TakeWhile(n => n <= b + 0E-10)
.ToList()
.ForEach(x => Console.WriteLine($"x = {x:0.000} y = {y(x):0.00}"));
Попробуй так:
Enumerable
.Range(0, int.MaxValue)
.Select(i => a + h * i)
.TakeWhile(n => n <= b + 0E-10)
.ToList()
.ForEach(x => Console.WriteLine($"x = {x:0.000} y = {(x < 0 ? -4 : x < 1 ? (x * x + 3 * x + 4) : 2):0.00}"));