Разработать интерфейс и класс для ряда Маклорена - C#
Формулировка задачи:
Разработать интерфейс и класс-реализацию для генерации последовательности и нахождения суммы ряда Маклорена функции f(x) = ex.
Решение задачи: «Разработать интерфейс и класс для ряда Маклорена»
textual
Листинг программы
using System;
using System.Collections.Generic;
namespace ConsoleApplication207
{
internal class Program
{
private static void Main(string[] args)
{
var series = new ExponentMaclaurin();
var val = series.GetSum(1.5, 0.00001d);
Console.WriteLine("Exp(1.5) = {0:0.00000}", val );
Console.ReadLine();
}
}
interface ISeries
{
IEnumerable<double> GetItems(double x);
double GetSum(double x, double epsylon);
}
class ExponentMaclaurin : ISeries
{
public IEnumerable<double> GetItems(double x)
{
var fact = 1;
var xx = 1d;
for(int i=1;;i++)
{
yield return xx/fact;
xx *= x;
fact *= i;
}
}
public double GetSum(double x, double epsylon)
{
var sum = 0d;
foreach(var item in GetItems(x))
{
sum += item;
if (item < epsylon)
break;
}
return sum;
}
}
}