В компиляторе языка Turbo Pascal возможно полное или укороченное вычисление логических выражений.
При использовании укороченного вычисления производится проверка логического выражения до тех пор, пока не станет известно значение всего выражения, т.е. если один из операндов операции OR равен TRUE или первый операнд операции AND равен FALSE.
Для этого служит ключ {$b-}, который используется по умолчанию.
Т.Е.
1) в выражении a AND b , если a = False, то значение b не вычисляется
2) в выражении a OR b , если a = True, то значение b не вычисляется.
При полном вычисляется все выражение.
Рекомендуется использовать короткое вычисление.
Кроме того, вычисление по короткой схеме делает возможным такие конструкции, которые в противном случае были бы недопустимы, например
IF(J<>0) AND ((2/J)>X) THEN....
WHILE (I<=LENGTH(S)) AND (S[I]<>'') DO...
В обоих случаях, если результатом первого вычисления будет значение FALSE,вычисление второго выражения не выполняется (а если попыталось бы, то была бы ошибка).
Полная схема необходима лишь тогда, когда один или более операндов в выражении представляют собой логические функции с побочными эффектами, которые изменяют смысл программы, например
IF(LogFunc1(X) AND LogFunc2(X) THEN...
где LogFunc1 и LogFunc2 кроме анализа значения X, производят модификацию данных или выдачу сообщений.