Инкремент и декремент

Процедура Inc в Паскале выполняет операцию инкремента. Синтаксис процедуры следующий:
procedure Inc(var X: TOrdinal);
procedure Inc(var X: TOrdinal; Increment: TOrdinal);
Процедура Inc увеличивает значение переменной Х на значение Increment.
Если Increment не указан, то Х увеличивается на единицу.
Если включена проверка диапазона, то может произойти ошибка выхода за диапазон или переполнения при выполнении попытки увеличить Х на такое значение, при котором Х выйдет за пределы своего типа.
Процедура Dec в Паскале выполняет операцию декремента. Синтаксис процедуры следующий:
procedure Dec(var X: TOrdinal);
procedure Dec(var X: TOrdinal; Decrement: TOrdinal);
Процедура Dec уменьшает значение переменной Х на значение Decrement.
Если Decrement не указан, то Х уменьшается на единицу.
Если включена проверка диапазона, то может произойти ошибка выхода за диапазон или переполнения при выполнении попытки уменьшить Х на такое значение, при котором Х выйдет за пределы своего типа.
Тип TOrdinal
Типа TOrdinal на самом деле в Паскале не существует. Однако в справочной документации вы можете встретить такое наименование. Это означает, что значение может быть любого порядкового типа.
Операции инкремента и декремента
Для новичков объясню, что такое операции инкремента и декремента.
Итак, инкремент в Паскале (как и в любых других языках программирования) — это операция увеличения числа на заданное значение. А декремент — это операция уменьшения числа на заданное значение.
То есть по сути процедура Inc(X, Increment) выполняет следующий код:
Х := Х + Increment
А процедура Dec(X, Decrement) выполняет следующий код:
Х := Х — Decrement
Пример использования процедур Dec и Inc
program funcdecinc; var x : integer; begin x := 100; Dec(x); //x = 99 WriteLn(x); Inc(x); //x = 100 WriteLn(x); Dec(x, 10); //x = 90 WriteLn(x); Inc(x, 20); //x = 110 WriteLn(x); Dec(x, -10); //x = 120 WriteLn(x); Inc(x, -20); //x = 100 WriteLn(x); ReadLn; end.
Особенности использования процедур Dec и Inc
Наверняка вы обратили внимание в примере использования процедур Dec и Inc на последние несколько строк, где в качестве инкремента и декремента передаются отрицательные значения.
В таких случаях процедуры Dec и Inc работают “наоборот”. То есть
Dec(x, -10); — увеличивает Х на 10
Inc(x, -20); — уменьшает Х на 20
Применение процедур Dec и Inc
Наиболее часто процедуры Dec и Inc используются в циклах. Например, так:
x := 10; while x > 0 do begin Write(x, ' '); Dec(x); end;
Ну вот и всё. Больше сказать об этих процедурах мне нечего. Но, думаю, ничего говорить больше и не надо.
Разработчику о работе с 1С:Предприятие, Pascal, Паскаль
Функция inc (A, B), dec (A, B) в Паскале (Pascal).
09.05.2017 |
Автор Дмитрий
Функция inc (A, B), dec (A, B) в Паскале (Pascal).
Функция inc (A, B) — увеличивает значение переменной A на значение переменной B.
Функция dec (A, B) — уменьшение значение переменной A на значение переменной B.
program Inc_dec_Task; //программа inc, dec в Паскале var i_Num1, i_Num2: integer; begin i_Num1 := 10; i_Num2 := 3; Writeln('Было i_Num1: ', i_Num1); Writeln('Было i_Num2: ', i_Num2); Writeln('Функция: inc(i_Num1,i_Num2)'); Inc(i_Num1, i_Num2); // увеличение Writeln('Стало i_Num1: ', i_Num1, ' увеличение'); Writeln('Стало i_Num2: ', i_Num2); Writeln('Функция: dec(i_Num1,4)'); Dec(i_Num1, 4); //уменьшение Writeln('Стало i_Num1: ', i_Num1, ' уменьшение'); Writeln('Стало i_Num2: ', i_Num2); //завершение работы программы WriteLn('Нажмите , чтобы выйти.'); ReadLn(); end.
Функция inc (A, B), dec (A, B) в Паскале (Pascal).
Вторая переменная может отсутствовать. В это случае, по умолчанию переменная B равно 1.
В примере переменную A сначала увеличиваем на 1, а потом уменьшаем на 1.
program Inc_dec_1_Task; //программа inc, dec в Паскале по умолчанию 1 var i_Num1: integer; begin i_Num1 := 10; Writeln('Было i_Num1: ', i_Num1); Writeln('Функция: inc(i_Num1)'); Inc(i_Num1); // увеличение на 1 Writeln('Стало i_Num1: ', i_Num1, ' увеличение на 1'); Writeln('Функция: dec(i_Num1)'); Dec(i_Num1); //уменьшение на 1 Writeln('Стало i_Num1: ', i_Num1, ' уменьшение на 1'); //завершение работы программы WriteLn('Нажмите , чтобы выйти.'); ReadLn(); end.
Функция inc (A), dec (A) в Паскале (Pascal), без второй переменной, по умолчанию равна 1 (единице).
![]()
Рубрика: Pascal — программирование
Что такое inc в паскале
Increase value of integer variable
Declaration
Source position: system.fpd line 50
var X : TOrdinal
var X : TOrdinal ;
Description
Inc increases the value of X with Increment . If Increment isn’t specified, then 1 is taken as a default.
Inc can be used on typed pointers: in that case it increases the value with Increment the size of the type the pointer points to. This works independently of the setting of the $POINTERMATH directive.
Errors
If range checking is on, then A range check can occur, or an overflow error, when an attempt is made to increase X over its maximum value.
See also
Decrease value of variable
Example
Program Example32; Const C : Cardinal = 1; L : Longint = 1; I : Integer = 1; W : Word = 1; B : Byte = 1; SI : ShortInt = 1; CH : Char = 'A'; begin Inc (C); Inc (L,5); Inc (I,-3); Inc (W,3); Inc (B,100); Inc (SI,-3); Inc (CH,1); end.
Вопросы по Pascal. Процедуры Dec и Inc.

Вопросы по Pascal
Автор cyber На чтение 1 мин.
В чем заключается вопрос : Для чего нужны и как работают процедуры Dec и Inc в Pascal
Сложность: легкая.
Пояснение:
Всё очень просто. В языке Pascal эти процедуры используются для увеличения и уменьшения значения переменной (нельзя использовать на числа с плавающий запятой).
Обе процедуры могут принимать два параметра:
- Какую переменную увеличить / уменьшить
- На сколько увеличить / уменьшить
Если указать в процедуре только один параметр, то значение будет изменено на единицу:
var A,B:integer; begin A := -2; B := 1; // Процедуры сработают так Inc(A); // A := A + 1; Dec(B); // B := B - 1; writeln(A); // станет равным -1, т.к. Inc без 2-го параметра прибавит единицу. writeln(B);// станет равным 0, т.к. Dec без 2-го параметра вычтет единицу. readln; end.
Теперь если мы укажем второй параметр процедуры, то значение переменной будет изменено на конкретное значение:
var A,B:integer; begin A := -2; B := 1; // Процедуры сработают так Inc(A, -5); // A := A + (-5); Dec(B, 2); // B := B - 2; writeln(A); // будет -7 writeln(B); // будет -1 readln; end.