Для порядковых типов есть несколько очень полезных функций и процедур, некоторыми из которых мы уже пользовались.
Pred- функция, которая возвращает предыдущее значение выражения порядкового типа, указанного в скобках:
Pred(2) = 1 Pred(’2’) = ’1’ Pred(True) = False Pred(Volkswagen) = BMW
Succ - функция, которая возвращает следующее значение:
Succ(1) =2 Succ(’l’) = ’2’ Succ(False) = True Succ(BMW) = Volkswagen
Легко заметить, что действие этой функции противоположно действию функции Pred, и наоборот.
Ord- функция, которая возвращает порядковый номер значения в списке:
Ord(’A’) = 65 Ord(True) = 1 Ord(Volkswagen) = 4
Low - функция, которая возвращает минимальное значение указанного типа данных:
Low(Integer) = -2147483648 Low(Boolean) = False Low(Char) = #0 (символ с кодом 0)
High- функция, которая возвращает максимальное значение указанного типа данных:
High(Integer) = 2147483647 High(Boolean) = True High(Char) = (символ с кодом #$FFFF)
С помощью этих двух функций вы легко сможете определять диапазон значений любого порядкового типа.
Ну, и ещё две процедуры, с которыми мы уже знакомы:
Dec - функция декремента; уменьшает значение переменной типа integerна единицу:
Varn: integer; n:= 2;
После выполнения функции Dec(n) значение переменной nстанет равным 1.
Можно уменьшить значение переменной на любое целое число:
Dec(n, 3) n= -1
По своему действию эта функция эквивалентна оператору присваивания:
n:= n- 1; или n:= n- 3;
но выполняется быстрее.
Inc- процедура инкремента; увеличивает значение на единицу.
Varn: integer; n:= 2;
После выполнения функции Inc(n) значение переменной nстанет равным 3.
Можно увеличить значение переменной на любое целое число:
Inc(n, 3) n= 5
По своему действию эта функция эквивалентна оператору присваивания:
n:= n+ 1; или n:= n+ 3;
но выполняется быстрее.