1) Ошибка может содержаться в любой ветке. Не протестировав все - не узнаешь, а не узнав - не исправишь. Значит в итоге будет кривая программа. Брак то бишь.
2) условия можно вкладывать друг в друга любое число раз, главное не запутаться в них в итоге. Выглядеть это будет например вот так:
If a<0 then b:=a/2 else if a=0 then b:=a else b:=a*2;
Или так: if a<0 then if (abs(a) mod 2 =0) then b:='отрицательное чётное' else b:='отрицательное нечетное' else b:='положительное'; Главное чётко следить к какому if какое then и особенно какое else. Блок схемы на картинке. Возможна масса других вариантов.<hr>