.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();
        }

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


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

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

7   голосов , оценка 4.286 из 5
Похожие ответы