用C#编写矩形金字塔表面积的公式

时间:2017-05-03 14:11:04

标签: c# math

我需要帮助编写矩形金字塔总表面积的公式。这是我想用C#编写的公式:

Image

这是我到目前为止所做的,我尝试了各种变化(比如使用Math.Pow等),但仍然没有进展:

 resultPyramidArea = "Pyramid area: " + (length3d * width3d + length3d) * Math.Sqrt(((width3d / 2.000) * (width3d / 2.000)) + (height3d * height3d)) + width3d * Math.Sqrt(((length3d / 2.000) * (length3d * 2.000)) + (height3d * height3d));

在公式中,A是Area,l替换为length3d,w替换为width3d,h替换为height3d

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

您的操作顺序不正确。它应该是这样的:

resultPyramidArea = 
      (length3d * width3d) 
    + (length3d * Math.Sqrt(Math.Pow(width3d / 2, 2) + Math.Pow(height3d, 2))) 
    + (width3d * Math.Sqrt(Math.Pow(length3d / 2, 2) + Math.Pow(height3d, 2)));

编辑:代码我用来为你测试这个陈述OP:

static void Main()
    {
        double length3d = 4;
        double width3d = 2;
        double height3d = 3;
        double resultPyramidArea = (length3d * width3d) + (length3d * Math.Sqrt(Math.Pow(width3d / 2, 2) + Math.Pow(height3d, 2))) + (width3d * Math.Sqrt(Math.Pow(length3d / 2, 2) + Math.Pow(height3d, 2)));
        Console.WriteLine(resultPyramidArea);
        Console.ReadLine();
    }

这是正确的,我在谷歌的在线计算器上尝试了输入并得到了正确的答案。如果您仍然遇到问题,可能是因为在原始代码中resultPyramidArea正在添加字符串和双精度数,如果resultPyramidArea是双重类型变量,则这不是C#中的有效语句,如果如果要显示“金字塔区域:”消息,请执行以下操作:

Console.WriteLine("Pyramid area: {0}", resultPyramidArea)

resultPyramidArea只是一个双重

答案 1 :(得分:1)

你走了:

double length3d = 10;
double width3d = 10;
double height3d = 10;

double slant1 = Math.Sqrt(Math.Pow(width3d / 2, 2) + Math.Pow(height3d, 2));
double slant2 = Math.Sqrt(Math.Pow(length3d / 2, 2) + Math.Pow(height3d, 2));

resultPyramidArea = (length3d * width3d) + (length3d * slant1) + (width3d * slant2);
// Output: 323.60679774997897

编辑:添加与谷歌的结果比较OP

Google的输出