.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 выбрать максимально возможным!
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace _3
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. Console.Write("Введите шаг h = ");
  12. double h = Convert.ToDouble(Console.ReadLine());
  13. Console.Write("Промежуток от - ");
  14. double i = Convert.ToDouble(Console.ReadLine());
  15. Console.Write("до - ");
  16. double b = Convert.ToDouble(Console.ReadLine());
  17. for (i = i; i<=b; )
  18. {
  19. for (double k = 1; k<=b; )
  20. {
  21. double result_s = (Math.Pow(-1, k) * (Math.Pow(2 * i, 2 * k) / 2 * k));
  22. double result_y = (2 * (Math.Pow(Math.Cos(i), 2) - 1));
  23. double result_z = Math.Abs(result_y - result_s);
  24.  
  25. Console.Write("S({0}) ={1:N3} ", i, result_s);
  26. Console.Write("Y({0}) ={1:N3}|\n ", i, result_y);
  27. Console.WriteLine("|Y({0}) - S({0})|={1:N3}\n", i, i, result_z);
  28. i = i+ h;
  29. k = k + h;
  30. }
  31. }
  32. Console.ReadKey();
  33. }
  34. }
  35. }

Решение задачи: «.NET 4.x Расчет ряда с помощью циклов/процедур»

textual
Листинг программы
  1.       static int Factorial(int number)
  2.         {
  3.             if (number <= 1)
  4.                 return 1;
  5.             else
  6.                 return number * Factorial(number - 1);
  7.         }
  8.         static double Member(double x, int k)
  9.         {
  10.             double s = Math.Pow(-1, k) * Math.Pow(2 * x, 2 * k) / Factorial(2 * k);
  11.             return s;
  12.         }
  13.         static double Set(double x)
  14.         {
  15.             double eps = 0.0001;
  16.             int k = 1;
  17.             double member = 1;
  18.             double set = 0;
  19.             while (Math.Abs(member) > eps)
  20.             {
  21.                 member = Member(x, k);
  22.                 set += member;
  23.                 k += 1;
  24.             }
  25.             return set;
  26.         }
  27.         static double Y(double x)
  28.         {
  29.             double y = 2 * (Math.Cos(x) * Math.Cos(x) - 1);
  30.             return y;
  31.         }
  32.         static void Main()
  33.         {
  34.             double a = 0.1;
  35.             double b = 1;
  36.             double h = 0.1;
  37.             for(double x=a;x<=b;x+=h)
  38.                Console.WriteLine("x = {0}, S = {1}, Y = {2}", x, Set(x),Y(x));
  39.             Console.ReadKey();
  40.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы