2015-10-15 166 views
-1

我學習C#,發現這種做法的問題:計算使用方法System.Math類(C#)一個三角形的面積

編寫計算與下面給出一個三角形的面積的程序: 兩邊的長度和它們之間的角度(提示:側角邊)

我知道如何在C#中找到三角形的區域,如果我有底座和高度,並且我知道有一個在.Math類中使用.Cos方法來獲得我需要的餘弦。但是,我的程序似乎不喜歡我使用的語法。對於如何在.Math類中實現方法來解決像這樣的幾何問題,需要用戶輸入邊,角度和另一邊的信息,我可以提供任何建議嗎?

我知道式是 C^2 = A^2 + B^2 - 2AB * COS(Y)//其中y =角度

這裏的程度是我迄今

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace day_of_the_week 
{ 

    class Program 

    { 

     static void Main(string[] args) 

     { 

      double side1; 
      double side2; 
      double angle; 

      Console.WriteLine("Enter one side length."); 
      side1 = Convert.ToDouble(Console.ReadLine()); 

      Console.WriteLine("Enter the other side's height."); 
      side2 = Convert.ToDouble(Console.ReadLine()); 

      Console.WriteLine("Enter the value of the angle."); 
      angle = Convert.ToDouble(Console.ReadLine()); 

      double thirdside = Program.thirdside(side1, side2); 
      Console.WriteLine(thirdside); 
      Console.ReadLine(); 
      } 
     public static double thirdside(double side1, double side2, double angle) 
     { 
      return (side1*side1 + side2*side2 - 2*side1*side2.Cos(angle)); 
     } 
     } 
    } 
+0

*「我的程序似乎不喜歡我正在使用的語法」*不足以描述您的問題。請包括您得到的錯誤,並突出顯示錯誤發生的行。理想情況下,花時間刪除與錯誤無關的所有行,並僅提供最小代碼示例。這就是說,在你的情況下,最明顯的錯誤是微不足道的。您是否嘗試過查看Math.Cos的手冊頁(https://msdn.microsoft.com/en-us/library/system.math.cos%28v=vs.110%29.aspx)?它包含例子和所有。 – HugoRune

+1

我投票結束這個問題作爲題外話,因爲這主要是一個數學問題(公式是錯誤的/不完整的),由於錯別字的無效語法。 – poke

+1

順便說一句。該區域的正確公式爲'(side1 * side2 * Math.Sin(angle))/ 2.0'。 – poke

回答

1

與呼叫你的函數需要實現爲Math.CosMath.Sqrt,像這樣:,我認爲這將跨越什麼,我試圖做讓

public static double rad(double deg) 
{ 
    return deg * Math.PI/180; 
} 

public static double thirdside(double side1, double side2, double angleDeg) 
{ 
    double angleRad = rad(angleDeg); 
    return Math.Sqrt(side1*side1 + side2*side2 - 2*side1*side2*Math.Cos(angleRad)); 
} 

請記住,您可能希望以角度輸入角度。但是Math.Cos接受以弧度表示的角度,因此轉換。

而問題中的代碼忽略了取表達式的平方根。這個答案中的代碼是這樣的。

+0

非常有幫助!謝謝。 – Marykyl

0

需要指定類。所以這是Math.Cos(angle)。還可以使用Math.Pow(side1, 2)來計算正方形數字。

0

注意,三角形的面積是

0.5*side1*side2*sin(toRadians(angle)) 

如果angleside1side2之間的角度。