From ac5ae13f3662f0dd83aaf1488f70ce9316588093 Mon Sep 17 00:00:00 2001 From: Artem-Darius Weber Date: Thu, 17 Apr 2025 13:31:20 +0300 Subject: [PATCH] (lab 5) feat: add Quadratic Equation solver --- lab 5/QuadraticEquation/Program.fs | 36 +++++++++++++++++++ .../QuadraticEquation.fsproj | 12 +++++++ 2 files changed, 48 insertions(+) create mode 100755 lab 5/QuadraticEquation/Program.fs create mode 100755 lab 5/QuadraticEquation/QuadraticEquation.fsproj 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 + + + + + + +