Рассмотрим каждый вариант:
if b=0 then writeln ('Деление не возможно'); — Синтаксически верно. Это условие проверяет, равен ли b нулю, перед выполнением операции деления (которая не указана явно, но подразумевается в контексте сообщения).if a — Синтаксически верно. Оператор присваивания := используется правильно.if a>b then max:=a else max:=b; — Синтаксически верно. Аналогично предыдущему пункту.if (a>b) and (b>0) then c:=a+b. — Синтаксическая ошибка. После выполнения команды c:=a+b стоит точка ., которая в данном контексте (внутри if, без begin..end) является недопустимой. Точка ставится после последнего оператора в блоке begin..end или после всей программы.Ответ: 4) if (a>b) and (b>0) then c:=a+b.