Haskell 程序计算长方体的体积、对角线和面积


本教程将帮助我们计算长方体的体积、对角线和面积。长方体的体积是测量长方体内部空间大小的量度。面积涉及长方体的表面积。长方体的对角线是连接长方体两个相对顶点的线段。它也被称为长方体的“空间对角线”或“体对角线”。

算法

  • 步骤 1 − 体积、对角线和面积函数根据简单的数学公式定义,体积 l w h = l * w * h;对角线 l w h = sqrt (l^2 + w^2 + h^2) 和面积 l w h = 2 * (l*w + w*h + h*l)。

  • 步骤 2 − 程序执行将从主函数开始。main() 函数控制整个程序。它被写成 main = do。主函数从用户那里获取长方体的长、宽和高输入,然后使用上述函数计算体积、对角线和表面积。

  • 步骤 3 − 名为“length”、“width” 和“height” 的变量被初始化。它将包含要计算其面积、对角线和体积的长方体的长、宽和高。

  • 步骤 4 − 一旦调用体积、对角线和面积函数,就会显示最终的体积、对角线和面积结果值。

使用用户定义函数

此示例定义了三个函数:volume、diagonal 和 area,它们分别计算长方体的体积、对角线和表面积。最后,它将结果显示给用户。

示例

volume :: Float -> Float -> Float -> Float
volume l w h = l * w * h

diagonal :: Float -> Float -> Float -> Float
diagonal l w h = sqrt (l^2 + w^2 + h^2)

area :: Float -> Float -> Float -> Float
area l w h = 2 * (l*w + w*h + h*l)

main :: IO ()
main = do
   let l = 5
   let w = 4
   let h = 10
   let v = volume l w h
       d = diagonal l w h
       a = area l w h
   putStrLn ("Volume: " ++ show v)
   putStrLn ("Diagonal: " ++ show d)
   putStrLn ("Surface Area: " ++ show a)

输出

Volume: 200.0
Diagonal: 11.874342
Surface Area: 220.0

使用数据类型

此示例定义了一个自定义数据类型 Cuboid,它包含长方体的长、宽和高。体积、对角线和面积函数以 Cuboid 作为输入并返回计算出的值。最后,它将结果显示给用户。

示例

data Cuboid = Cuboid { length :: Float, width :: Float, height :: Float }

volume :: Cuboid -> Float
volume (Cuboid l w h) = l * w * h

diagonal :: Cuboid -> Float
diagonal (Cuboid l w h) = sqrt (l^2 + w^2 + h^2)

area :: Cuboid -> Float
area (Cuboid l w h) = 2 * (l*w + w*h + h*l)

main :: IO ()
main = do
    putStrLn "Enter the length, width, and height of the cuboid: "
    let l = 5
    let w = 4
    let h = 10
    let cuboid = Cuboid l w h
        v = volume cuboid
        d = diagonal cuboid
        a = area cuboid
    putStrLn ("Volume: " ++ show v)
    putStrLn ("Diagonal: " ++ show d)
    putStrLn ("Surface Area: " ++ show a)

输出

Volume: 200.0
Diagonal: 11.874342
Surface Area: 220.0

结论

有不同的方法可以计算长方体的体积、对角线和面积。在 Haskell 中,可以通过使用用户定义函数或通过使用数据类型来表示长方体以及一组对其进行操作的函数来计算长方体的体积、对角线和面积。

更新于: 2023年1月23日

175 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告