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

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

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

Программа рабочая, но при вводе чисел >3, ничего не выдает. Вот код (мб дело в быдлокодской функции?)
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace sharp_1
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. Console.ForegroundColor = ConsoleColor.Red;
  14. System.Console.WriteLine("Введите x:");
  15. double x;
  16. double e = 2.71828;
  17. x = Double.Parse(Console.ReadLine());
  18. System.Console.WriteLine("Введите E (эпсилон):");
  19. double E;
  20. E = Double.Parse(Console.ReadLine());
  21. double sum;
  22. Console.ForegroundColor = ConsoleColor.Green;
  23. System.Console.WriteLine("По формуле Тейлора:");
  24. sum = Teylor(x, E);
  25. System.Console.WriteLine(sum);
  26. System.Console.WriteLine("По обычной формуле:");
  27. System.Console.WriteLine(System.Math.Pow(e, -x));
  28. Console.ForegroundColor = ConsoleColor.Red;
  29. System.Console.WriteLine("Хотите ли продолжить? 1-да 0-нет");
  30. int key;
  31. key = int.Parse(Console.ReadLine());
  32. do
  33. {
  34. System.Console.WriteLine("Введите x:");
  35. x = Double.Parse(Console.ReadLine());
  36. System.Console.WriteLine("Введите E (эпсилон):");
  37. E = Double.Parse(Console.ReadLine());
  38. Console.ForegroundColor = ConsoleColor.Green;
  39. System.Console.WriteLine("По формуле Тейлора:");
  40. sum = Teylor(x, E);
  41. System.Console.WriteLine(sum);
  42. System.Console.WriteLine("По обычной формуле:");
  43. System.Console.WriteLine(System.Math.Pow(e, -x));
  44. Console.ForegroundColor = ConsoleColor.Red;
  45. System.Console.WriteLine("Хотите ли продолжить? 1-да 0-нет");
  46. key = int.Parse(Console.ReadLine());
  47. }
  48. while (key == 1);
  49. }
  50. public static double Teylor(double x, double E)
  51. {
  52. int fact = 1;
  53. double for_x = -1;
  54. double sum = 1;
  55. double next = 1;
  56. int f = 1;
  57. while (System.Math.Abs(next) >= E)
  58. {
  59. fact *= f;
  60. next = for_x * x / fact;
  61. for_x *= (-1) * x;
  62. f++;
  63. sum += next;
  64. }
  65. return sum;
  66. }
  67. }
  68. }
Помогите, пожалуйста!

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

textual
Листинг программы
  1.         public static double Teylor(double x, double E)
  2.         {
  3.             double sum = 1;
  4.             double next = 1;
  5.             int f = 1;
  6.             while(System.Math.Abs(next) >= E)
  7.             {
  8.                 next = next*(-x)/ f++;
  9.                 sum += next;
  10.             }
  11.             return sum;
  12.         }

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


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

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

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

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

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

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