Haskell 程式查詢二次方程的所有根
在本教程中,我們將討論編寫一個程式,以在 Haskell 程式語言中找到三個數字中最大的那個。二次方程是二階代數方程。
示例 - 二次方程的形式為 ax^2 + bx + c,其中 a、b 和 c 是常數,x 是變數。二次方程有兩個根。
演算法步驟
將二次方程作為輸入。
實現計算根的程式設計邏輯。
顯示根。
演算法邏輯
獲取輸入或初始化 a、b 和 c 的值。因為可以用這些值構建二次表示式 (ax^2 + bx + c)。
計算判別式D,它等於 b^2 - 4*a*c。
如果判別式 D 大於或等於零,則根為
root1 = (-b + sqrt(D))/2*a
root2 = (-b - sqrt(D))/2*a
我們將列印根。
如果判別式D小於零,則根為虛數,我們列印根為虛數
注意 - 如果判別式 D 為零,則根為 -b/2*a 和 -b/2*a。
示例
查詢二次方程所有根的程式
-- function declaration for function printRoots printRoots :: Float->Float->Float->IO() -- function definition for function printRoots printRoots a b c = do print("a,b,c values =",a,b,c) let d = b^2 - 4*a*c -- let d = 1 if (d < 0) then do print ("This quadratic equation has imaginary roots") else do let root1 = (-(b) + sqrt (d))/2 * (a) let root2 = (-(b) - sqrt (d))/2 * (a) print ("The roots for this quadratic are:") print (root1) print (root2) main :: IO() main = do -- declaring and initializing constants in quadratic equation let a = 1 let b = 4 let c = 2 -- invoking the printRoots function printRoots (a) (b) (c)
輸出
("a,b,c values =",1.0,4.0,2.0)
"The roots for this quadratic are:"
-0.58578646
-3.4142137
在上面的程式中,我們聲明瞭一個函式 printRoots,它接受三個浮點數作為引數並返回一個 IO 操作。在其函式定義中,我們正在獲取三個引數 a、b 和 c。我們根據公式 b^2 - 4*a*c 計算判別式,並將判別式載入到變數 d 中。我們正在檢查判別式是否小於零,如果小於零,我們將列印語句“根為虛數”,因為我們知道如果二次方程的判別式小於零,則根為虛數。如果判別式大於零,我們將使用公式 (-b +/- sqrt(d))/2*a 計算根。我們將根載入到變數 root1 和 root2 中。最後,我們在函式中列印了根。在主函式中,我們宣告並初始化了變數 a、b 和 c。最後,我們使用這三個數字作為引數呼叫了函式printRoots。
結論
在本教程中,我們討論了在 Haskell 程式語言中實現查詢二次方程根的程式。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP