Помогите разобраться с ELSE паскаль

Помогите разобраться с ELSE паскаль
var a,b,c,D,x1,x2: integer;

begin
readln (a,b,c);
D:=(b*b)-4*a*c;
writeln (D);
if D>0 then begin
x1:= ((-b)+sqrt(D))/(2*a);
x2:= ((-b)-sqrt(D))/(2*a);
writeln ('Ответ: X1 = ',x1,' X2 = ',x2)
else
if D = 0 then
x1:= -b/(2*a);
writeln ('Ответ: X1 = ',x1)
else
if D < 0 then
writeln ('Решения Нет! ')
end;
readln;
end.
***
после запуска пишет "встречено ELSE, ожидался оператор".. как исправить?

  • 1.Перед первым else нужно end поставить.
    2. Операторы по D>0 и D = 0 нужно обернуть в begin end
  • помоему второй оператор else не имеет привязки - а так ХЗ
  • writeln ('Ответ: X1 = ',x1)
    else < -- вот тут косячина