Haskell程式讀取座標點並確定其象限
本教程將幫助我們讀取x和y座標並確定其象限。如果兩個座標都為正,則點位於第一象限;如果x座標為正且y座標為負,則點位於第四象限;如果x座標為負且y座標為正,則點位於第二象限;如果兩個座標都為負,則點位於第三象限。
演算法
步驟1 − 使用x和y座標上的某些條件定義象限函式。
步驟2 − 程式執行將從主函式開始。main()函式控制整個程式。
步驟3 − 初始化名為“x”和“y”的變數。它將包含要確定其象限的座標值。
步驟4 − 使用'putStrLn'語句顯示最終的象限結果。
使用使用者自定義函式
在此示例中,我們建立一個名為quadrant的函式,該函式將x和y座標的元組作為輸入,並返回一個字串,指示點位於哪個象限。
示例1
quadrant :: (Float, Float) -> String quadrant (x, y) | x > 0 && y > 0 = "First Quadrant" | x < 0 && y > 0 = "Second Quadrant" | x < 0 && y < 0 = "Third Quadrant" | x > 0 && y < 0 = "Fourth Quadrant" | x == 0 || y == 0 = "On the Axis" main = do let x = -2 let y = 4 putStrLn $ "Point lies in " ++ quadrant (x, y)
輸出
Point lies in Second Quadrant
使用atan2函式
在此示例中,我們使用atan2函式計算正x軸與連線點到原點的直線之間的弧度角。使用此角度,我們可以確定點位於哪個象限。
示例2
quadrant :: (Float, Float) -> String quadrant (x, y) | angle > 0 && angle < pi/2 = "First Quadrant" | angle > pi/2 && angle < pi = "Second Quadrant" | angle > pi && angle < 3*pi/2 = "Third Quadrant" | angle > 3*pi/2 && angle < 2*pi = "Fourth Quadrant" | x == 0 && y == 0 = "Origin" | x == 0 || y == 0 = "On the Axis" where angle = atan2 y x main = do let x = 3 let y = 2 putStrLn $ "Point lies in " ++ quadrant (x, y)
輸出
Point lies in First Quadrant
使用x和y座標的符號
在此示例中,它檢查x和y座標的符號,並據此確定點所在的象限。它還處理點位於x軸或y軸或原點的情況。
示例3
quadrant :: (Float, Float) -> String quadrant (x, y) | x > 0 && y > 0 = "First Quadrant" | x < 0 && y > 0 = "Second Quadrant" | x < 0 && y < 0 = "Third Quadrant" | x > 0 && y < 0 = "Fourth Quadrant" | x == 0 && y == 0 = "Origin" | x == 0 = "On the x-axis" | y == 0 = "On the y-axis" main = do let x = -7 let y = -5 putStrLn $ "Point lies in " ++ quadrant (x, y)
輸出
Point lies in Third Quadrant
結論
在Haskell中,有多種方法可以讀取x和y座標並確定其象限。這些方法可以透過使用象限函式、atan2函式或透過檢查x和y座標的符號來實現。
廣告