Как найти квадратный корень? - C#

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

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

Здравствуйте! Решил я сделать для личных нужд программу, которая ищет кинетическую энергию с учетом того, что при суб-световых скоростях импульс тела увеличивается (Хоть до бесконечности). Эта программа вполне нормально работает при больших скоростях. Ноо : 1. При малых значениях она дает меньший результат (Например, при массе в 5кг и скорости в 7м/с программа выдает 199 Дж (Окгругленно), вместо чуть больше, чем 245 Дж (Опять же чуть больше 245 из-за округления)) 2. При очень малых значениях получаются числа типа "0.9999999999999999888734994395", и программа выдает квадр. корень 1, из-за чего на выходе получается 0. Вот код (Код прям кривой конечно, но он хоть работает):
Листинг программы
  1. string _TotalEnergy = null, _C = "89875517873681764";
  2. double _Mass, _Velocity;
  3. Console.Clear();
  4. Console.WriteLine("Сколько потребуется для разгона энергии (дробные числа через ","):");
  5. Console.WriteLine("Масса (КГ) :");
  6. _Mass = Convert.ToDouble(Console.ReadLine());
  7. Console.Clear();
  8. Console.WriteLine("Сколько потребуется для разгона энергии (дробные числа через ","):");
  9. Console.WriteLine("Масса = " + _Mass + " КГ");
  10. Console.WriteLine("Скорость (М/С) :");
  11. _Velocity = Convert.ToDouble(Console.ReadLine());
  12. Console.Clear();
  13. Console.WriteLine("Сколько потребуется для разгона энергии (дробные числа через ","):");
  14. Console.WriteLine("Масса = " + _Mass + " КГ");
  15. Console.WriteLine("Скорость = " + _Velocity + " М/С");
  16. string _vel = Convert.ToString(_Velocity * _Velocity);
  17. double _dbl1= Convert.ToDouble(_vel) / Convert.ToDouble(_C);
  18. _TotalEnergy = Convert.ToString(_dbl1);
  19. double _dbl2 = Convert.ToDouble(_TotalEnergy);
  20. decimal _dcm1 = 1 - Convert.ToDecimal(_dbl2);
  21. _TotalEnergy = Convert.ToString(_dcm1);
  22. double _dbl3 = Convert.ToDouble(_TotalEnergy);
  23. double _dbl4 = Math.Sqrt(_dbl3);
  24. double _dbl5 = 1 / _dbl4;
  25. double _dbl6 = _dbl5 - 1;
  26. double _dbl7 = _dbl6 * Convert.ToInt64(_C) * _Mass;
  27. decimal _dcm2 = Convert.ToDecimal(_dbl7);
  28. _TotalEnergy = Convert.ToString(_dcm2);
  29. Console.WriteLine("================================");
  30. Console.WriteLine("Для разгона объекта массой " + _Mass + " кг до скорости " + _Velocity + " м/с потребуется\n" + _TotalEnergy + " Дж");
  31. Console.ReadKey();
Вот формула: Eк = mc²(1/√(1-v²/c²) - 1) Буду благодарен, если подскажите, как исправить или из-за чего возникают эти 2 проблемы

Решение задачи: «Как найти квадратный корень?»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace Jesterru
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             double c = 299792458;
  10.  
  11.             Console.Clear();
  12.             Console.WriteLine("Сколько потребуется для разгона энергии (дробные числа через ", "):");
  13.             Console.WriteLine("Масса (Кг) :");
  14.             double mass = 5;// Convert.ToDouble(Console.ReadLine());
  15.             Console.Clear();
  16.             Console.WriteLine("Сколько потребуется для разгона энергии (дробные числа через ", "):");
  17.             Console.WriteLine("Масса = " + mass + " кг");
  18.             Console.WriteLine("Скорость (м/с) :");
  19.             double velocity = 7;// Convert.ToDouble(Console.ReadLine());
  20.             Console.Clear();
  21.             Console.WriteLine("Сколько потребуется для разгона энергии (дробные числа через ", "):");
  22.             Console.WriteLine("Масса = " + mass + " кг");
  23.             Console.WriteLine("Скорость = " + velocity + " м/с");
  24.  
  25.             double a = 1 - (Math.Pow(velocity, 2) / Math.Pow(c, 2));
  26.             double totalEnergy = (mass * Math.Pow(velocity, 2)) / (a + Math.Sqrt(a));
  27.  
  28.             Console.WriteLine("================================");
  29.             Console.WriteLine("Для разгона объекта массой " + mass + " кг до скорости " + velocity + " м/с потребуется\n" + totalEnergy + " Дж");
  30.             Console.ReadKey();
  31.         }
  32.     }
  33. }

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


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

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

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

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

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

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