Небольшая задачка

Небольшая задачка
Задача: составить программу которая умеет решать линейное уравнение (вида ax+b=0). Рассмотреть различные случаи
1) нет решений
2) решение любое x
3) единственное решение вычислить его

Как здесь сделать ветвление?

var a,b,x:real;
begin
read(a,b);
begin
if a <> 0 then
x:=(-b)/a;
write(x:0:2);
if (a=0) and (b<>0) then
write('уравнение не имеет решений ');
if (a=0) and (b=0) then
write('уравнение имеет бесконечное множество корней');
end.

так не работает, а как тогда?

var a,b,x:real;
begin
readln(a,b);
if a <> 0 then if (a=0) and (b<>0)then writeln('уравнение не имеет решения')
else if (a=0) and (b=0) then
writeln('уравнение имеет бесконечное множество корней')
else
x:=(-b)/a;
writeln(x:0:2);
end.

  • var a,b,x:real;
    begin
    readln(a,b);
    if a <> 0 then if (a=0) and (b<>0)then
    writeln('уравнение не имеет решения')
    else if (a=0) and (b=0) then
    writeln('уравнение имеет бесконечное множество корней')
    else begin
    x:=(-b)/a;
    writeln(x:0:2);
    end;
    end.