Инструкции
Инструкции используются для реализации сложной алгоритмической логики. Англоязычный термин <Statement> в русскоязычной литературе переводится, как <Оператор> и <Инструкция>. Будем использовать термин «Инструкция» Инструкции различают:
- Простые.
- Структурированные.
- Ассемблерные.
Простые инструкции
К простым инструкциям относятся:
- присваивания,
- безусловный переход goto,
- пустая,
- вызова процедуры.
Инструкции присваивания
Используются для присвоения переменным значения. Формат стандартной инструкции
<Имя_Переменной>:=<Выражение>;
В состав инструкции входят:
<Имя_Переменной> | Получатель результата вычисления <Выражения> |
:= | Знак присвоения. Два символа без пробелов |
<Выражение> | Правило получения значения, передаваемого в <Имя_Переменной> |
<Имя_Переменной> и результат вычисления <Выражения> должны быть одного типа или совместимыми по присваиванию.
В дополнение к стандартной инструкции присваивания (:=
), которая просто заменяет текущее значение переменной значением, возвращённым выражением в правой части инструкции присваивания
, FPC поддерживает некоторые конструкции в стиле языка С.
<Имя_Переменной_1><Знак инструкции><Имя_Переменной_2>;
В состав инструкции входят:
<Имя_Переменной_1> | Первая переменная, она же получатель результата |
Знак инструкции | Знак инструкции |
<Имя_Переменной_2>; | Имя второй переменной, участвующей в вычислении |
Определены следующие инструкции такого типа:
Инструкция | Действие |
a+=b | Прибавляет b к a, помещает результат в a |
a-=b | Отнимает b от a, помещает результат в a |
a*=b | Умножает a на b, помещает результат в a |
a/=b | Делит a на b, помещает результат в a |
Чтобы эти конструкции работали, необходимо использовать ключ командной строки –Sc.
program C_Style;
{$mode objfpc}{$H+}
uses
Classes, SysUtils
var
a,b:integer;
begin
b:=5;
a:=3;
a+=b;
writeln(a);
readln;
end.
Инструкция безусловного перехода
Используется для передачи управления помеченной инструкции. Применять эту инструкцию не рекомендуется, так как при этом ухудшается читаемость программы. Формат инструкции
goto <Метка>;
В состав инструкции входят:
goto | Идти к (от английского go to) |
<Метка> | инструкции, помеченной <Меткой> |
БНФ для помеченной инструкции
<Помеченная инструкция>::=<Метка>:<непомеченная инструкция>;
Требования к меткам
- <Метка> – любое имя или целое число без знака в пределах 0..9999.
- Метка должна быть предварительно объявлена в разделе label.
- Метка должна быть уникальной.
Переход допускается только в пределах блока (программа, подпрограмма). Не рекомендуется делать переходы к инструкциям, находящимся внутри составных инструкций.
Пустая инструкция
Не выполняет никаких действий. Используется для организации безусловных переходов к меткам (за которыми может и не быть никаких действий). Например, для завершения программы при возникновении ошибки. Пример:
program PustoyOperator;
{$mode objfpc}{$H+}
uses SysUtils; // Ссылка на модули
label m1; // Определена метка
begin
{……..}
goto m1; // Переход к помеченной пустой инструкции
{……..}
m1: ; // Помеченная пустая инструкция
{……..}
end.
Инструкция вызова процедуры
Служит для активизации стандартной или предварительно определенной процедуры. Представляет собой имя процедуры со списком фактических параметров в круглых скобках.
MyProcedure(x,y,z);