Описание действий (тело программы)

Раздел описания действий представляет собой последовательность операторов.

Операторомназывается предложение языка программирования, задающее полное описание некоторого действия, которое необходимо выполнить.

Разделителем операторов служит символ “;” точка с запятой.

Простыми Операторами называют операторы, не содержащие никаких других операторов. К ним относятся операторы присваивания, безусловного перехода, вызова процедуры и пустой оператор.

Структурными операторами называют конструкции, построенные из других операторов по строго определенным правилам. Все структурные операторы подразделяются на три группы: составные, условные, повтора.

Оператор присваивания

Оператор присваивания “:=” предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, идентификатор которой расположен в левой части. Переменная и выражение должны быть совместимы по типу. Общий вид оператора присваивания представлен на следующей диаграмме.

<переменная> := <выражение>

Оператор присваивания выполняется следующим образом: сначала вычисляется выражение в правой части присваивания, а затем его значение присваивается переменной, указанной в левой части оператора. Обратите внимание на то, что если переменная, указанная в левой части оператора, входит в состав выражения, то после вычисления выражения она получит новое значение, а старое будет потеряно безвозвратно.

Выражение представляет собой последовательность из любого большего чем один количества переменных, констант и функций, разделенных знаками операций.

Операции равного приоритета выполняются слева направо, хотя компилятор может их перегруппировать для генерации оптимального кода. Последовательность операторов с одинаковым приоритетом выполняется слева направо. Выражения, заключенные в круглые скобки, вычисляются в первую очередь, независимо от предшествующих и последующих операторов.

 

Таблица 1. Приоритет выполнения операций

Операции Приоритет Категория
@, not Первый (высший) Унарные
*, /, div, mod, and, shl, shr Второй Мультипликативные
+, -, or, xor Третий Аддитивные
=, <>, <, >, <=, >= Четвертый (низший) Отношения

В частности, для оператора Rezult := A div B; сначала выполняется целочисленное деление значения переменной A на значение переменной B, а затем результат присваивается переменной Rezult.

Например: A:= 8; S:= A * B; S:= S + 1; Ostatok := A mod B; Ratio := A / B;

Арифметические операции

ПАСКАЛЬ поддерживает обычный стандартный набор арифметических операций (см. Таблица 1), которые выполняются над целыми и вещественными числами:

Таблица 2. Арифметические операции

Обозначение Операция Типы Пример
+ сложение real, integer;  
вычитание real, integer;  
* умножение real, integer;  
/ деление real, integer;  
Div остаток от деления нацело integer 8 div 3 = 2;
Mod остаток от деления нацело integer 8 mod 3 = 2;
And побитовое логическое умножение integer 12 and 22 = 4;
Or побитовое логическое сложение integer 12 or 22 = 30;
Xor побитовое логическое сложение с исключением integer 12 xor 22 = 26;
Shl побитовый сдвиг влево integer 2 shl 7 = 256;
Shr побитовый сдвиг вправо integer 4 shr 1 = 2;

Таблица 3. Операции отношения

Обозначение Операция
> больше
>= больше или равно
< меньше
<= меньше или равно
= равно
<> не равно

Операции отношения

Операции отношений (см. Таблица 3) сравнивают два значения, возвращая в результате булевское значение True или False. Операции применимы ко всем типам, кроме типа file.

Логические операции

Логические операции применимы только к типу boolean.Результат также имеет тип boolean. При помощи логических операций можно формулировать сложные условия в операторах ветвления и цикла.

Таблица 4. Логические операции