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

haskellserver side programmingprogramming更新于 2025/5/8 6:07:17

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

算法

  • 步骤 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 :: 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 中,可以使用用户定义的函数或使用表示长方体的数据类型和一组对其操作的函数来计算长方体的体积、对角线和面积。


相关文章