Паскаль, квадратное уравнение
Пожалуйста, доведите до ума.
Иногда выдает неверный x1 или x2.
Program yravnenie;
var
a,b,c,d,x,xx:real;
Begin
Writeln('Введите A');
Readln(a);
Writeln('Введите B');
Readln(b);
Writeln('Введите C');
Readln(c);
d:=(b*b)-(4*a*c);
WriteLn('D=',d:3:2);
If (d>0) then
begin
x:=(-b+sqrt(d))/(2*a);
Writeln('x=',x:3:3);
xx:=(-b-sqrt(d))/(2*a);
Writeln('xx=',xx:3:3);
End;
If (d=0) then
begin
x:=(-b)/(2*a);
Writeln('x=',x:3:3);
End;
If (d<0) then
begin
Writeln('Уравнение не имеет корней');
end;
end.