Инкремент и декремент
Угадайте, что чаще всего делают с целыми переменными? — прибавляют и вычитают единицу. Потому в процессорах стараются ускорить эти операции. Паскаль не обошел вниманием эту особенность программ, и предлагает вам две процедуры, объявленные так:
procedure |
Inc |
(var |
N |
: |
longint); |
{ |
прибавление единицы к переменной N } |
procedure |
Dec |
(var |
N |
: |
longint); |
{ |
вычитание единицы из переменной N } |
Процедура Dec уменьшает значение переменной Х на значение Decrement.
Если Decrement не указан, то Х уменьшается на единицу.
Если включена проверка диапазона, то может произойти ошибка выхода за диапазон или переполнения при выполнении попытки уменьшить Х на такое значение, при котором Х выйдет за пределы своего типа.
Тип TOrdinal
Типа TOrdinal на самом деле в Паскале не существует. Однако в справочной документации вы можете встретить такое наименование. Это означает, что значение может быть любого порядкового типа.
Операции инкремента и декремента
Для новичков объясню, что такое операции инкремента и декремента.
Итак, инкремент в Паскале (как и в любых других языках программирования) — это операция увеличения числа на заданное значение. А декремент — это операция уменьшения числа на заданное значение.
То есть по сути процедура Inc(X, Increment)
выполняет следующий код:
Х := Х + Increment
А процедура Dec(X, Decrement)
выполняет следующий код:
Х := Х - Decrement
Особенности использования процедур Dec и Inc
Наверняка вы обратили внимание в примере использования процедур Dec и Inc на последние несколько строк, где в качестве инкремента и декремента передаются отрицательные значения.
В таких случаях процедуры Dec и Inc работают “наоборот”. То есть
1 2 3 |
Dec(x, -10); - увеличивает Х на 10 Inc(x, -20); - уменьшает Х на 20 |
Применение процедур Dec и Inc
Наиболее часто процедуры Dec и Inc используются в циклах. Например, так:
1 2 3 4 5 6 |
x := 10; while x > 0 do begin Write(x, ' '); Dec(x); end; |