Почему программа не выдаёт результатов при определенных значениях? (формула Тейлора) - 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;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д