.NET 4.x Расчет ряда с помощью циклов/процедур - C#
Формулировка задачи:
Помогите пожалуйста довести код до ума, нужно организовать его через процедуры/функции и добавить деление на факториал. Скорее всего мои наработки вовсе неверные, поэтому прошу строго не судить. Заранее благодарю всех за помощь.
Значение аргумента x изменяется от a до b с шагом h. Для каждого x найти значения функции Y(x), суммы S(x) и |Y(x)-S(x)| и вывести в виде таблицы. Значения a,b,h и n вводятся с клавиатуры. Работу программы проверить для a=0,1; b=1,0; h=0,1; n выбрать максимально возможным!
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _3 { class Program { static void Main(string[] args) { Console.Write("Введите шаг h = "); double h = Convert.ToDouble(Console.ReadLine()); Console.Write("Промежуток от - "); double i = Convert.ToDouble(Console.ReadLine()); Console.Write("до - "); double b = Convert.ToDouble(Console.ReadLine()); for (i = i; i<=b; ) { for (double k = 1; k<=b; ) { double result_s = (Math.Pow(-1, k) * (Math.Pow(2 * i, 2 * k) / 2 * k)); double result_y = (2 * (Math.Pow(Math.Cos(i), 2) - 1)); double result_z = Math.Abs(result_y - result_s); Console.Write("S({0}) ={1:N3} ", i, result_s); Console.Write("Y({0}) ={1:N3}|\n ", i, result_y); Console.WriteLine("|Y({0}) - S({0})|={1:N3}\n", i, i, result_z); i = i+ h; k = k + h; } } Console.ReadKey(); } } }
Решение задачи: «.NET 4.x Расчет ряда с помощью циклов/процедур»
textual
Листинг программы
static int Factorial(int number) { if (number <= 1) return 1; else return number * Factorial(number - 1); } static double Member(double x, int k) { double s = Math.Pow(-1, k) * Math.Pow(2 * x, 2 * k) / Factorial(2 * k); return s; } static double Set(double x) { double eps = 0.0001; int k = 1; double member = 1; double set = 0; while (Math.Abs(member) > eps) { member = Member(x, k); set += member; k += 1; } return set; } static double Y(double x) { double y = 2 * (Math.Cos(x) * Math.Cos(x) - 1); return y; } static void Main() { double a = 0.1; double b = 1; double h = 0.1; for(double x=a;x<=b;x+=h) Console.WriteLine("x = {0}, S = {1}, Y = {2}", x, Set(x),Y(x)); Console.ReadKey(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д