27 lines
785 B
Nim
27 lines
785 B
Nim
import os, math, strutils, strformat
|
|
|
|
var num_a, num_b, num_c: float
|
|
|
|
if paramCount() >= 3:
|
|
num_a = parseFloat(paramStr(1))
|
|
num_b = parseFloat(paramStr(2))
|
|
num_c = parseFloat(paramStr(3))
|
|
# else:
|
|
# launch ui to get numbers
|
|
|
|
let radical: float = num_b^2 + (-4 * num_a * num_c)
|
|
|
|
if radical < 0:
|
|
# complex roots
|
|
let real_part: float = -num_b / (2 * num_a)
|
|
let imaginary_part: float = sqrt(radical * -1) / (2 * num_a)
|
|
|
|
echo &"{real_part}+{imaginary_part}\t{real_part}-{imaginary_part}"
|
|
else:
|
|
# real roots
|
|
let numrator_1: float = -num_b + sqrt(radical)
|
|
let numrator_2: float = -num_b - sqrt(radical)
|
|
let solution_1: float = numrator_1 / (2 * num_a)
|
|
let solution_2: float = numrator_2 / (2 * num_a)
|
|
|
|
echo &"{solution_1}\t{solution_2}" |