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 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.