Операторы выполняют некоторые действия над данными. Операторы выполняются в том порядке, в котором они записаны в программе. Разделителем операторов служит точка с запятой.
Все операторы разделяются на 2 группы: простые и структурные.
Операторы, не содержащие внутри себя другие операторы, называются простыми. К ним относятся операторы присваивания, безусловного перехода, пустой оператор и оператор вызова процедуры. Структурные операторы — это составной, условные операторы и операторы циклов.
Совместимость типов
Два типа считаются совместимыми, если:
§ оба есть один и тот же тип;
§ оба вещественные;
§ оба целые;
§ один тип есть тип-диапазон второго типа;
§ оба являются типами-диапазонами одного и того же базового типа.
2.1 Простые операторы
Оператор присваивания выполняет выражение, заданное в его правой части, и присваивает результат переменной, идентификатор которой расположен в левой части.
Формат оператора:
Идентификатор:= выражение;
Такое присваивание возможно лишь в следующих случаях:
§ идентификатор и значение выражения принадлежат к одному и тому же типу;
§ идентификатор и значение выражение являются совместимыми типами, и значение выражения лежит в диапазоне возможных значений идентификатора;
§ идентификатор вещественного типа — значение выражения целочисленного типа;
§ идентификатор — строка, выражение — символ.
В программе данные одного типа могут преобразовываться в данные другого типа. Такое преобразование может быть явным и неявным.
Явное преобразование типов может осуществляться двумя способами:
§ использование функций преобразование типов;
§ преобразование типов может осуществляться применением идентификатора (имени) стандартного типа или типа определенного пользователем, как идентификатора функции преобразования к выражению преобразуемого типа, например:
Var k: integer;
Begin
Byte (k); {переменная k преобразована в целочисленный тип}
End.
Неявное преобразование типов возможно в двух случаях:
§ в выражениях, составленных из вещественных и целочисленных переменных, целочисленные переменные автоматически преобразуются к вещественному типу, и все выражение в целом приобретает вещественный тип;
§ одна и та же область памяти попеременно трактуется как содержащая данные то одного, то другого типа (совмещение в памяти данных разного типа).
Оператор безусловного перехода GOTO. Служит для передачи управления оператору, помеченному меткой. Метка отделяется от оператора двоеточием. Оператор GOTO применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой, отмеченный меткой оператор.
Формат оператора:
GOTO метка;
Формат описания меток:
LABEL
имя метки;
При записи оператора GOTO необходимо помнить следующее:
1. Метка, на которую передается управление, должна быть описана в разделе описания меток того блока процедуры, функции, основной программы, в котором эта метка используется.
2. Областью действия метки является тот блок, в котором она описана.
3. Попытка выйти за пределы блока или передать управление внутрь другого блока вызывает программное прерывание.
Пример:
Goto met1;
…
met1: оператор;
Обычно оператор Goto применяется для преждевременного выхода из цикла или при обработке ошибок. В других случаях его использовать не рекомендуется.
Пустой оператор не содержит ни оного символа и не выполняет никаких действий. Он может быть использован там, где синтаксис языка требует наличие оператора, но никакие действия выполнять не нужно. Пустой оператор — это лишняя точка с запятой (;). Чаще всего пустой оператор встречается с меткой и ставится в конце оператора или программы.
Пример:
goto 7;
...
7:;