Вычислить и вывести на экран значения функции в виде таблицы, заданной с помощью ряда Тейлора - C# (193468)
Формулировка задачи:
Помогите пожалуйста с лабораторной! весь интернет перерыл не нашел я свой вариант
Вычислить и вывести на экран значения функции в виде таблицы, заданной с помощью ряда Тейлора, на интервале от Хнач до Хкон с шагом dx и точностью е (эпсилон). При выводе таблицу снабдить заголовком и шапкой. Каждая строка должна содержать значение аргумента, значение функции и количество просуммированных членов ряда.
Решение задачи: «Вычислить и вывести на экран значения функции в виде таблицы, заданной с помощью ряда Тейлора»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace App6
{
class Program
{
static void Main(string[] args)
{
int x0, x1, n ,x;
double f, e, s, i, h;
Begin: Console.WriteLine("Введите начальное значение интервала");
x0 = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("Введите конечное значение интервала");
x1 = Convert.ToInt16(Console.ReadLine());
Console.WriteLine("Введите шаг");
h = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Введите точность");
e = Convert.ToDouble(Console.ReadLine());
i = x0; s = 0; n = 0; f = 1; s = 0;
while (Math.Abs(f) > e)
{
f = (Math.Pow((-1), n) * Math.Pow(x1, n)) / factorial(n);
n++;
s = s + Math.Abs(f);
}
x = (int)s;
char[] ch = x.ToString().ToCharArray(); ;
int nulls = 3 + ch.Count();
Console.Write("+---" + "+{0," + nulls + ":G}+", "--------");
Console.WriteLine("---+");
Console.Write("| x |"+"{0,"+nulls+":N}","summa");
Console.WriteLine("| n |");
Console.Write("+---" + "+{0," + nulls + ":N}+", "--------");
Console.WriteLine("---+");
while (i < x1)
{
n = 0; f = 1; s = 0;
while (Math.Abs(f) > e)
{
f = (Math.Pow((-1), n) * Math.Pow(i, n)) / factorial(n);
n++;
s = s + Math.Abs(f);
}
Console.Write("|{0,3:G}",i);
Console.Write("|{0,"+nulls+":N}|", s );
Console.WriteLine("{0,3:G}|", n);
i = i + h;
}
Console.Write("+---" + "+{0," + nulls + ":N}+", "--------");
Console.WriteLine("---+");
Console.WriteLine("Для продолжения нажмите - 1, для выхода - любую кнопку");
if (Console.ReadLine() == "1")
{
Console.Clear();
goto Begin;
}
}
private static double factorial(int n)
{
if (n <= 1) return (1);
else return (n * factorial(n - 1));
}
}
}