Директивы компилятора
Комментарии
Помимо описаний и операторов в программах на языке Паскаль могут использоваться комментарии.
Комментарии не выполняют никаких действий и используются только как некоторый поясняющий текст для программистов. Комментарии помещаются в фигурные скобки (« { » и « } ») и могут содержать произвольный набор символов (в т.ч. и буквы кириллицы). Компилятором комментарии игнорируются, поэтому они могут быть вставлены в любое место программы.
Пример:
var x: integer; {описали переменную}
begin
readln(x); {запрашиваем у пользователя значение x}
x:=2*x; {увеличиваем x в два раза}
writeln(x); {печатаем новое значение x на экране}
end.
Рекомендуется комментарии использовать для пояснения сложных блоков операторов, а также в тех случаях, когда исходный текст программы будет использоваться другими программистами.
Кроме того, комментарии могут оформляться с помощью скобок « (* » и « *) ».
Также стоит отметить, что компилятором игнорируется любой текст, записанный после точки (т.е. за программой).
В текст программы могут быть вставлены специальные директивы для компилятора. Такие директивы задают тот или иной режим компиляции.
Директивы помещаются в скобки «{$ » и « } ». От комментариев они отличаются тем, что сразу же за открывающейся фигурной скобкой следует знак $. Внутри скобок указывается, какую опцию следует включить или отключить.
Подробнее с директивами компилятора знакомство будет осуществляться в процессе изложения материала. Здесь же приведем лишь несколько примеров.
Вспомним логические выражения. Не всегда такие выражения требуется вычислять полностью – в некоторых случаях результат может стать уже известным заранее. Например, рассмотрим следующее выражение:
(3=7) and ( sin(pi/7)*cos(5*pi/6)<4/7+0.03 )
Вычислив левую от ключевого слова and скобку, получим False. Далее, на первый взгляд, необходимо вычислить правую от and скобку. Но вспомним, что оператор and возвращает истину только в том случае, когда оба операнда истинны. Однако левый операнд ложен. Следовательно, получаем: результатом выражения будет False независимо от того, какой результат будет получен в правой от and скобки.
В Паскале вычисления логических выражений заканчиваются тогда, когда окончательное значение становится понятным. Т.е. для предыдущего выражения правая скобка вычисляться не будет. С одной стороны, это позволяет избежать ненужных вычислений, а следовательно, и ускоряет время выполнения программы. Но, с другой стороны, в практике можно столкнуться с ситуацией, когда логическое выражение необходимо вычислить полностью, независимо от того, известен ли уже конечный результат или нет (например, если в выражении осуществляется вызов какой-либо функции, которую обязательно необходимо выполнить).
Принудить компилятор выполнять логические выражения полностью может директива {$B+}. Вернуть затем компилятор к обычному режиму можно с помощью директивы {$B-}.
Пример:
var t: boolean;
begin
…
{$B+}
t := (3=7) and ( sin(pi/7)*cos(5*pi/6)<4/7+0.03 );
{$B-}
…
end.
В завершение пункта отметим, что в одних скобках можно перечислить через запятую сразу несколько директив компилятора:
{$I-, Q+}.