2015-12-10 4 views
-1

Я делаю теорему Пифагора калькулятор и у меня возникают некоторые вопросы:теорема Пифагора расчет ноги

static void Main(string[] args) 
     { 
      double a, b, c; 
      Console.WriteLine("Which side do you need to calculate? (a, b, c)"); 
      string side = Console.ReadLine(); 

      switch (side.ToLower()) 
      { 
       case "a": 
        Console.WriteLine("Enter length of b"); 
        b = double.Parse(Console.ReadLine()); 
        Console.WriteLine("Enter length of c"); 
        c = double.Parse(Console.ReadLine()); 


        a = Math.Sqrt(Math.Pow(b, 2) - Math.Pow(c, 2)); 
        a = Math.Round(a, 4); 
        Console.WriteLine("Side a is ~ {0}", a); 

        break; 

       case "b": 
        Console.WriteLine("Enter length of a"); 
        a = double.Parse(Console.ReadLine()); 
        Console.WriteLine("Enter length of c"); 
        c = double.Parse(Console.ReadLine()); 

        b = Math.Sqrt(Math.Pow(a, 2) - Math.Pow(c, 2)); 
        //b = Math.Round(b, 4); 
        Console.WriteLine("Side b is ~ {0}", b); 
        break; 

       case "c": 
        Console.WriteLine("Enter length of a"); 
        a = double.Parse(Console.ReadLine()); 
        Console.WriteLine("Enter length of b"); 
        b = double.Parse(Console.ReadLine()); 

        c = Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2)); 
        c = Math.Round(c, 4); 
        Console.WriteLine("Side a is ~ {0}", c); 
        break; 
      } 
     } 

У меня есть гипотенуза работает правильно, но нужны некоторые рекомендации для других сторон/ног.

Вся помощь очень признательна!

ответ

0

предполагая правый угол треугольника где с гипотенузой

a = Math.Sqrt(Math.Pow(c, 2) - Math.Pow(b, 2)); 
b = Math.Sqrt(Math.Pow(c, 2) - Math.Pow(a, 2)); 
c = Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2)); 

выглядит, как вы имели Ьс и ас вместо

+1

посмотреть это видео [kahn academy video] (https://www.khanacademy.org/math/geometry/right_triangles_topic/pyth_theor/v/pythagorean-theorem), чтобы понять формулы –

+0

Как примечание, 'Math. Pow' действительно не нужен, так как он так же легко (и, вероятно, вычисляется быстрее), как, например, 'a = Math.Sqrt (c * c - b * b);' –

+0

Это всегда небольшие ошибки, которые вы получите Спасибо! @RonBeyer Справедливая точка зрения, я буду помнить об этом. Я буду придерживаться Паута сейчас ради личной ясности - не то, чтобы решение было особенно сложным. – ryderd

0

Другой пост указал, что было не так с вашим кодом, но я хотел вы делаете довольно много дополнительной работы в своем коде. Попробуйте эту модель:

Console.WriteLine("Enter Side 1"); 
double x = double.Parse(Console.ReadLine()); 
Console.WriteLine("Enter Side 2"); 
double y = double.Parse(Console.ReadLine()); 

double answer = Math.Sqrt(Math.Pow(x, 2) - Math.Pow(y, 2)); ; 
answer = Math.Round(answer, 4); 
Console.WriteLine("Side 3 is ~ {0}", answer); 

Вы на самом деле усложнять, как добраться до вашего ответа путем введения 3-й переменной, чтобы выбрать из, Ь, с. Я заметил это, потому что все математические данные в ваших трех случаях одинаковы.

+0

Это не то же самое во всех случаях, один из них добавляет, а не вычитает. –

+0

Я вижу. Таким образом, мой комментарий «математика один и тот же» на самом деле является ложным. Виноват! – wentimo

Смежные вопросы