Квадратное уравнение всегда выдает 0.0е+000. Почему?

program quadratic;

function quadratic(a, b, c: real; var x1, x2: real): Boolean;
var
        d, s: real;
begin
        begin
        if a = 0 then
                quadratic := false;
                exit
        end;
        d := b*b - 4*a*c;
        begin
        if d < 0 then
                quadratic := false;
                exit
        end;
        s := sqrt(d);
        x1 := (-b - s) / (2*a);
        x2 := (-b + s) / (2*a);
        quadratic := true
end;

var
        g, h: real;

begin
        writeln(quadratic(2, 3, -5, g, h));
        writeln(g, h);
end.   

Доброго времени суток. Вроде бы всё просто, я хочу вывести на экран результаты квадратного уравнения с заданными значениями, вывожу переменные с помощью writeln, но результат всегда один:

TRUE
0.0000000000000000E+000 0.0000000000000000E+000

Погуглил, ответа не нашел, может быть не понимаю как вопрос задать в поисковую строку.


Ответы (0 шт):