Почему программа не выдаёт результатов при определенных значениях? (формула Тейлора) - C#

Узнай цену своей работы

Формулировка задачи:

Программа рабочая, но при вводе чисел >3, ничего не выдает. Вот код (мб дело в быдлокодской функции?)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace sharp_1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.ForegroundColor = ConsoleColor.Red;
            System.Console.WriteLine("Введите x:");
            double x;
            double e = 2.71828;
            x = Double.Parse(Console.ReadLine());
            System.Console.WriteLine("Введите E (эпсилон):");
            double E;
            E = Double.Parse(Console.ReadLine());
            double sum;
            Console.ForegroundColor = ConsoleColor.Green;
            System.Console.WriteLine("По формуле Тейлора:");
            sum = Teylor(x, E);
            System.Console.WriteLine(sum);
            System.Console.WriteLine("По обычной формуле:");
            System.Console.WriteLine(System.Math.Pow(e, -x));
            Console.ForegroundColor = ConsoleColor.Red;
            System.Console.WriteLine("Хотите ли продолжить? 1-да  0-нет");
            int key;
            key = int.Parse(Console.ReadLine());
            do
            {
                System.Console.WriteLine("Введите x:");
                x = Double.Parse(Console.ReadLine());
                System.Console.WriteLine("Введите E (эпсилон):");
                E = Double.Parse(Console.ReadLine());
                Console.ForegroundColor = ConsoleColor.Green;
                System.Console.WriteLine("По формуле Тейлора:");
                sum = Teylor(x, E);
                System.Console.WriteLine(sum);
                System.Console.WriteLine("По обычной формуле:");
                System.Console.WriteLine(System.Math.Pow(e, -x));
                Console.ForegroundColor = ConsoleColor.Red;
                System.Console.WriteLine("Хотите ли продолжить? 1-да  0-нет");
                key = int.Parse(Console.ReadLine());
            }
            while (key == 1);
        }
 
        public static double Teylor(double x, double E)
        {
            int fact = 1;
            double for_x = -1;
            double sum = 1;
            double next = 1;
            int f = 1;
            while (System.Math.Abs(next) >= E)
            {
 
                fact *= f;
                next = for_x * x / fact;
                for_x *= (-1) * x;
                f++;
                sum += next;
            }
            return sum;
        }
    }
 
}
Помогите, пожалуйста!

Решение задачи: «Почему программа не выдаёт результатов при определенных значениях? (формула Тейлора)»

textual
Листинг программы
        public static double Teylor(double x, double E)
        {
            double sum = 1;
            double next = 1;
            int f = 1;
            while(System.Math.Abs(next) >= E)
            {
                next = next*(-x)/ f++;
                sum += next;
            }
            return sum;
        }

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


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

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

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