Помогите пожалуйста найти ошибку в программном коде pascal

Помогите пожалуйста найти ошибку в программном коде pascal.
Program function1;
var y,x,a,b,c,d : Real;
begin
write('Введите значение переменной x '); readln(x);
write('Введите значения коэффициентов a,b,c,d ');readln(a,b,c,d);
if c+d*x=0 or (cos(x/2)=0 or (cos(x)=0 or sin(x/2)=0)
then write('Нет решений ')
else y:=1/cos(x)+ln(abs(tg(x/2))+(a+b*x)/(c+d*x);
write('y= ',y);
end.
Ругается на отсутствие закрывающей скобки после оператора then.

  • Единственное, что приходит в голову, в строчке if c+d*x=0 or (cos(x/2)=0 or (cos(x)=0 or sin(x/2)=0) добавить скобки: if (c+d*x=0) or (cos(x/2)=0) or (cos(x)=0) or (sin(x/2)=0). А так всё, вроде, верно!
  • ln(abs(tg(x/2))+(a+b*x)/(c+d*x) _)_;
  • (cos(x/2)=0 or (cos(x)=0 or sin(x/2)=0)
    посчитайте кол-во открывающихся и закрывающихся скобок.
    оно разное...