diff --git a/lab 5/QuadraticEquation/Program.fs b/lab 5/QuadraticEquation/Program.fs new file mode 100755 index 0000000..fec5b59 --- /dev/null +++ b/lab 5/QuadraticEquation/Program.fs @@ -0,0 +1,36 @@ +// For more information see https://aka.ms/fsharp-console-apps +printfn "Hello from F#" + +// ax² + bx + c = 0 +let solveQuadratic (a: float) (b: float) (c: float) = + let discriminant = b * b - 4.0 * a * c + + match discriminant with + | d when d > 0.0 -> + let x1 = (-b + sqrt(d)) / (2.0 * a) + let x2 = (-b - sqrt(d)) / (2.0 * a) + printfn "Уравнение имеет два различных корня:" + printfn "x₁ = %.4f" x1 + printfn "x₂ = %.4f" x2 + | d when d = 0.0 -> + let x = -b / (2.0 * a) + printfn "Уравнение имеет один корень (кратности 2):" + printfn "x = %.4f" x + | _ -> + printfn "Уравнение не имеет действительных корней" + +[] +let main argv = + printfn "Решение квадратного уравнения ax² + bx + c = 0" + printfn "Введите коэффициенты a, b, c:" + + let a = System.Console.ReadLine() |> float + let b = System.Console.ReadLine() |> float + let c = System.Console.ReadLine() |> float + + if a = 0.0 then + printfn "Ошибка: коэффициент a не может быть равен нулю" + else + solveQuadratic a b c + + 0 diff --git a/lab 5/QuadraticEquation/QuadraticEquation.fsproj b/lab 5/QuadraticEquation/QuadraticEquation.fsproj new file mode 100755 index 0000000..299cf40 --- /dev/null +++ b/lab 5/QuadraticEquation/QuadraticEquation.fsproj @@ -0,0 +1,12 @@ + + + + Exe + net7.0 + + + + + + +