Ключевое слово
| Комментарий
| |
and
| Булев оператор И
| |
array
| Массив
| |
as
| Используется при проверке соответствия типов, определяет объект как операнд
| |
asm
| Используется для выделения ассемблерного кода
| |
begin
| Начало блока
| |
case
| Оператор выбора. Используется при выборе из многих вариантов
| |
class
| Определяет тип класс
| |
const
| Определяет константы, т.е. неизменяемые переменные. Но в Delphi есть режим, допускающий изменение констант в теле программы
| |
constructor
| Специальный метод класса, необходимый для создания и инициализации экземпляра класса (объекта)
| |
destructor
| Специальный метод класса, необходимый для разрушения объекта
| |
dispinterface
| Определяет тип интерфейса
| |
div
| Целочисленное деление
| |
do
| Определяет начало исполнимой части в операторах цикла, конструкции try..except и в операторе with
| |
downto
| Определяет направление итерации в операторе for
| |
else
| Используется в операторах выбора case, условном операторе if и в операторе проверки исключений try..except
| |
end
| Обычно используется совместно с ключевым словом begin и отмечает конец блока. Также ставится в конце описания типа, например класса или записи
| |
except
| Используется в операторе проверки исключений try..except
| |
exports
| Определяет список экспортируемых процедур, функций и переменных
| |
| file
| Устанавливает тип переменной как файл. Используется при работе с файлами
|
| finalization
| Определяет начало раздела, который в программе всегда выполняется последним
|
| finally
| Используется в операторе проверки исключений try..finally
|
| for
| Используется в операторах цикла for..to и for..downto
|
| function
| Используется при объявлении функций
|
| goto
| Переход на метку
|
| if
| Используется в операторах выбора if..then и if..then..else
|
| implementation
| Определяет раздел реализации, в котором находятся описания процедур, функций, методов и коды разрабатываемой программы
|
| in
| После этого ключевого слова может указываться путь к необходимому модулю. Также используется при работе с множествами
|
| inherited
| Дословно можно перевести как «унаследованный». Используется при работе с классами, поддерживая возможности полиморфизма
|
| initialization
| Определяет раздел инициализации, который всегда располагается перед разделом finalization. Если раздела finalization нет, то перед завершением программы. Выполняется сразу после запуска программы, перед всеми другими операторами. Обычно используется для инициализации переменных
|
| inline
| Используется при работе с ассемблерным кодом. Не рекомендуется к применению
|
| interface
| Определяет тип интерфейса. Используется при опережающем объявлении интерфейса
|
| is
| Используется при проверке типов
|
| label
| Метка. Используется совместно с ключевым словом goto. Может быть выражена любым идентификатором или числом от 0 до 9999
|
| library
| Директива-напоминание или рекомендательная директива. Используется наравне с директивами platform и deprecated для напоминания об особенностях стандартных типов, методов или модулей. Во время компиляции вызывает появление предупреждающего сообщения
|
| mod
| Остаток от деления целых чисел
|
| nil
| Специальная константа, которая может быть присвоена любому указателю, после чего считается, что указатель не ссылается ни на что
|
| not
| Булев оператор отрицания
|
| object
| Используется как альтернатива слову «класс». Сохранено в языке для совместимости со старыми версиями. Не рекомендуется к использованию
|
| of
| Используется во многих операторах как связующее ключевое слово
|
| or
| Булев оператор ИЛИ
|
| out
| Используется при объявлении параметров процедуры, функции или метода. Предупреждает о том, что данный параметр используется только для выдачи значений
|
packed
| Используется для более плотного размещения данных в структурированных типах (массивы, множества, записи, файлы, классы)
| |
procedure
| Используется при объявлении процедур
| |
program
| Определяет имя программы, которое должно быть выражено идентификатором
| |
property
| Используется при объявлении свойств
| |
raise
| Используется при генерации исключений
| |
record
| Определяет тип запись
| |
repeat
| Используется в операторе цикла repeat..until
| |
resourcestring
| Определяет раздел объявления ресурсов
| |
set
| Ключевое слово для объявления множества
| |
shl
| Логический оператор сдвига влево
| |
shr
| Логический оператор сдвига вправо
| |
string
| Используется при объявлении строковых типов
| |
then
| Используется в операторах if..then и if..then..else
| |
threadvar
| Используется при разработке многопотоковых приложений
| |
to
| Используется в операторе for..to
| |
try
| Используется в операторе проверки исключений try..finally, try..except и в операторе выбора case
| |
type
| Определяет раздел объявления типов
| |
unit
| Модуль. Обычно это функционально- законченный фрагмент программы, сохраняемый в файле с таким же именем
| |
until
| Используется в операторе repeat..until
| |
uses
| Определяет раздел подключаемых модулей
| |
var
| Определяет раздел переменных
| |
while
| Используется в операторе while..do
| |
with
| Используется для определения идентификатора, который всегда записывается с другими идентификаторами. Код получается более компактным и понятным
| |
xor
| Булев оператор Исключающее ИЛИ
| |
| | | | |
Для обозначения имен констант, типов, переменных, процедур, функций, модулей, программ и полей в записях используются идентификаторы.
Идентификатор – это последовательность букв, цифр и знаков подчеркивания, которая начинается с буквы или символа подчеркивания и не содержит пробелов.
Как и зарезервированные слова, идентификаторы безразличны к регистру клавиатуры.
Идентификатор может иметь произвольную длину, однако значимыми являются только первые 255 символов.
Примеры:
Правильные идентификаторы
| Неправильные идентификаторы
|
MyVariable
My_Variable
_Stop
Lab_12
_1_2_3
| MyVariable# — содержит недопустимый символ #
My-Variable — содержит недопустимый символ -
l_2_3_ — начинается с цифры
Abc def12 – содержит символ пробела
|
Написание идентификаторов можно сделать нагляднее, если использовать слова, отражающие назначение идентификатора и начинать каждое слово с прописной буквы. Например, идентификатор для счетчика символов можно обозначить так: SymbolCounter.
Особым случаем является ситуация, когда в разных модулях программы описаны одинаковые имена. В такой ситуации используются так называемые квалифицируемые идентификаторы, в которых перед именем переменной ставится идентификатор модуля, содержащего эту переменную. Оба идентификатора при этом разделяются точкой. Квалифицируемые идентификаторы также называют уточненными.
Примеры:
Unit1.MyVar Unit2.MyVar Unit3.MyVar
Кроме указанного случая уточненные идентификаторы используются при работе с записями и объектами.
Какие из идентификаторов могут быть уточненными, а какие нет, показано на рис. 1.2.
B Object Pascal есть две разновидности идентификаторов:
· стандартные (предопределенные);
· пользовательские.
Стандартными предопределенными идентификаторами являются имена всех встроенных в язык процедур и функций (Read, Write, Sin и др.), типов (Integer, Real, Char и др.), директив (absolute, forward, private, public и др.). Переопределение стандартных идентификаторов, в принципе допускается, однако нужно иметь в виду, что в этом случае их стандартное действие будет для данной программы утеряно. Поэтому, такие переопределения считаются в программировании плохим стилем.
Некоторые из стандартных директив, учитывая специфику их применения, называют также процедурными директивами.
Перечень стандартных директив:
absolute
assembler (процедурная директива)
export (процедурная директива)
external (процедурная директива)
far (процедурная директива)
forward (процедурная директива)
index
interrupt (процедурная директива)
near (процедурная директива)
private
public
resident
virtual (процедурная директива)
Метки в программе используются для обозначения некоторых операторов, к которым можно передать управление. Метки бывают двух разновидностей: числовые и символьные. Числовая метка представляет собой последовательность цифр в диапазоне от 0 до 9999. Начальные нули не являются значащими. Turbo Pascal позволяет в качестве меток использовать идентификаторы, которые подчиняются вышеприведенным правилам записи. Метка отделяется от оператора символом двоеточия (:).
Примеры:
27: Writeln(‘Оператор вывода помечен числовой меткой’);
Label_A: if x<0 then i:=i+1 else i:=i-1; {Используется символьная метка}
В Object Pascal используются целые десятичные числа, целые шестнадцатеричные числа и вещественные десятичные числа. Причем вещественные числа могут быть представлены в двух различных формах записи, обычной и показательной.
Целые десятичные числа записываются стандартным образом и должны находиться в диапазоне от -2 147 483 648 до 2 147 483 647, например,
35 77 -39 9 -6428
Для обозначения шестнадцатеричных целых чисел используется символ $, который ставится перед числом, например,
$0 $3E $FCB5434 $A10
Допустимый диапазон шестнадцатеричных чисел от $00000000 до $FFFFFFFF. Знак (плюс или минус) шестнадцатеричного числа определяется самой формой записи и зависит от значения старшего разряда двоичного представления числа.
Вещественные числа записываются или в виде обычной десятичной дроби, или в показательной форме с основанием 10. При втором способе записи вместо основания 10 ставится буква E (прописная или строчная), непосредственно за которой указывается показатель степени, например,
6.3 -1436.9456 7.9E12 -34.83e7 0.2745e-10
Числа с десятичными точками или показателем степени являются константами вещественного типа, остальные десятичные и шестнадцатеричные числа являются константами целого типа.
Булевы константы false и true обозначают соответственно «ложь» и «истина» и могут использоваться в выражениях.
Строка символов представляет собой последовательность символов из расширенного набора символов кода ASCII, заключенную в одиночные кавычки. Необходимо также, чтобы вся последовательность располагалась в одной строке программы.
В случае если в состав строки необходимо включить символ одиночной кавычки, то этот символ печатается два раза подряд. Если между кавычками нет ни одного символа, то такая строка считается пустой и ее длина приравнивается нулю.
Примеры:
'Object Pascal'
'Н.Вирт — автор языка Pascal'
''
'Две подряд кавычки '' считаются в строке одним символом'
Управляющие символы в строке представляются в виде целого десятичного числа, непосредственно перед которым ставится символ #. Указанное десятичное число должно быть кодом ASCII требуемого управляющего символа.
#7 — символ "звонок"
#10 — символ "перевод строки"
#13 — символ "возврат каретки"
В принципе, таким образом могут быть представлены не только управляющие символы, но и любой другой символ кода ASCII (коды от 0 до 255). Кроме того, в строке допускается совмещать печатные и управляющие символы. Если в строку входят несколько управляющих символов, то между ними не должно быть разделителей, например,
'Совмещение печатных символов'#13#10'и управляющих'#13#10
Комментарий представляет собой фрагмент текста программы, ограниченный слева символом { или составным символом (*, а справа — символом } или составным символом *).
Комментарии выполняют в программе чисто информационную функцию и служат для описания назначения отдельных подпрограмм, типов, констант, переменных и т.п. Комментарии игнорируются компилятором и не влияют на работу программы.
Следующие конструкции представляют собой комментарии:
{Комментарием может быть любая последовательность символов, ограниченная с двух сторон фигурными скобками, независимо от того, сколько строк она будет занимать.}
(* Последовательность символов в круглых скобках со звездочками также является комментарием *)
Замечание: вложенность комментариев не допускается! Однако можно использовать конструкции вида:
{… (* … *) …} или (*… {…} … *)
Особым случаем является комментарий, в котором непосредственно после открывающей скобки, { или (*, следует символ доллара $. Такой комментарий является директивой компилятора, например,
{$N+} (*$R-*) {$I MyFile.pas} {$APPTYPE CONSOLE}