Описание действий (тело программы)
Раздел описания действий представляет собой последовательность операторов.
Операторомназывается предложение языка программирования, задающее полное описание некоторого действия, которое необходимо выполнить.
Разделителем операторов служит символ “;” точка с запятой.
Простыми Операторами называют операторы, не содержащие никаких других операторов. К ним относятся операторы присваивания, безусловного перехода, вызова процедуры и пустой оператор.
Структурными операторами называют конструкции, построенные из других операторов по строго определенным правилам. Все структурные операторы подразделяются на три группы: составные, условные, повтора.
Оператор присваивания
Оператор присваивания “:=” предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, идентификатор которой расположен в левой части. Переменная и выражение должны быть совместимы по типу. Общий вид оператора присваивания представлен на следующей диаграмме.
<переменная> := <выражение>
Оператор присваивания выполняется следующим образом: сначала вычисляется выражение в правой части присваивания, а затем его значение присваивается переменной, указанной в левой части оператора. Обратите внимание на то, что если переменная, указанная в левой части оператора, входит в состав выражения, то после вычисления выражения она получит новое значение, а старое будет потеряно безвозвратно.
Выражение представляет собой последовательность из любого большего чем один количества переменных, констант и функций, разделенных знаками операций.
Операции равного приоритета выполняются слева направо, хотя компилятор может их перегруппировать для генерации оптимального кода. Последовательность операторов с одинаковым приоритетом выполняется слева направо. Выражения, заключенные в круглые скобки, вычисляются в первую очередь, независимо от предшествующих и последующих операторов.
Таблица 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. Логические операции