【问题标题】:Calculating the area of a triangle using methods in the System.Math class (C#)使用 System.Math 类 (C#) 中的方法计算三角形的面积
【发布时间】:2015-10-15 21:26:36
【问题描述】:

我在学习C#,发现这个练习题:

编写一个计算三角形面积的程序,给定以下内容: 两条边的长度和它们之间的角度(提示:side-angle-side)

如果我有底和高,我知道如何在 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));
        }
        }
    }

【问题讨论】:

  • “我的程序似乎不喜欢我使用的语法” 不足以描述您的问题。请包括你得到的错误,并突出显示错误发生的行。最好花时间删除与错误无关的所有行,并且只提供一个最小的代码示例。也就是说,在您的情况下,最明显的错误是微不足道的。您是否尝试过查看 Math.Cos (msdn.microsoft.com/en-us/library/…) 的手册页?它包含示例和所有内容。
  • 我投票决定将此问题作为题外话结束,因为这主要是一个数学问题(公式错误/不完整)以及由于拼写错误导致的无效语法。
  • 顺便说一句。该区域的正确公式是(side1 * side2 * Math.Sin(angle)) / 2.0
  • @poke 他不想知道这个地区。根据问题文本中的表达式,他希望通过使用余弦规则来获得第三边。
  • @DavidHeffernan “编写一个计算三角形面积的程序 [...]” 加上问题标题听起来很像这里的面积是目标值。跨度>

标签: c# class math methods geometry


【解决方案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 接受以弧度表示的角度,因此可以进行转换。

问题中的代码忽略了取表达式的平方根。此答案中的代码就是这样做的。

【讨论】:

  • 非常有帮助!谢谢。
【解决方案2】:

需要指定类。这就是Math.Cos(angle)。也可以使用Math.Pow(side1, 2) 来计算平方数。

【讨论】:

    【解决方案3】:

    注意三角形的面积是

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

    如果angleside1side2 之间的角度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-15
      • 2011-01-09
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-29
      • 2010-10-07
      相关资源
      最近更新 更多