USING: formatting io kernel locals math math.functions math.parser ;
IN: quadratic-example
:: quadratic-equation ( a b c -- )
a 0 =
[ "Not a quadratic equation." printf ] [ b sq a c * 4 * - :> d
b neg a 2 * / :> x0
d 0 =
[ d 0 >
[ x0 sd
+ x0 sd
- "x1 = %f\nx2 = %f\n" printf ] [ x0 sd
+ [ real
-part
] [ imaginary
-part
] bi
"x1 = (%f, %f)\n" printf x0 sd
- [ real
-part
] [ imaginary
-part
] bi
"x2 = (%f, %f)\n" printf ] if
]
if
]
if ;
readln string>number
readln string>number
readln string>number
quadratic-equation
VVNJTkc6IGZvcm1hdHRpbmcgaW8ga2VybmVsIGxvY2FscyBtYXRoIG1hdGguZnVuY3Rpb25zIG1hdGgucGFyc2VyIDsKSU46IHF1YWRyYXRpYy1leGFtcGxlCgo6OiBxdWFkcmF0aWMtZXF1YXRpb24gKCBhIGIgYyAtLSApCiAgICBhIDAgPQogICAgWyAiTm90IGEgcXVhZHJhdGljIGVxdWF0aW9uLiIgcHJpbnRmIF0KICAgIFsgYiBzcSBhIGMgKiA0ICogLSA6PiBkIAogICAgICBiIG5lZyBhIDIgKiAvIDo+IHgwCiAgICAgIGQgc3FydCBhIDIgKiAvIDo+IHNkCiAgICAgIGQgMCA9CiAgICAgIFsgeDAgInggPSAlZlxuIiBwcmludGYgXQogICAgICBbIGQgMCA+CiAgICAgICAgWyB4MCBzZCArIHgwIHNkIC0gIngxID0gJWZcbngyID0gJWZcbiIgcHJpbnRmIF0KICAgICAgICBbIHgwIHNkICsgWyByZWFsLXBhcnQgXSBbIGltYWdpbmFyeS1wYXJ0IF0gYmkgIngxID0gKCVmLCAlZilcbiIgcHJpbnRmCiAgICAgICAgICB4MCBzZCAtIFsgcmVhbC1wYXJ0IF0gWyBpbWFnaW5hcnktcGFydCBdIGJpICJ4MiA9ICglZiwgJWYpXG4iIHByaW50ZiBdCiAgICAgICAgaWYKICAgICAgXQogICAgICBpZgogICAgXQogICAgaWYgOwoKcmVhZGxuIHN0cmluZz5udW1iZXIKcmVhZGxuIHN0cmluZz5udW1iZXIKcmVhZGxuIHN0cmluZz5udW1iZXIKcXVhZHJhdGljLWVxdWF0aW9uCg==