Порядковые типы
Перечень процедур и функций, применимых к целочисленным типам, приведен в табл.4.2.
- Буквами b, s, w, i, l обозначены выражения соответственно типа BYTE, SHORTINT, WORD, INTEGER и LONGINT;
- x – выражение любого из этих типов;
- буквы vb, vs, vw, vi, vl, vx обозначают переменные соответствующих типов.
В квадратных скобках указывается необязательный параметр.
Таблица 4.2. Стандартные процедуры и функции, применимые к целым типам.
Обращение | Тип результата | Действие |
---|---|---|
abs (x) | x | Возвращает модуль х |
chr(b) | Char | Возвращает символ по его коду |
dec (vx[, i]) | Уменьшает значение vx на i, а при отсутствии i – на 1 | |
inc(vx[, i]) | Увеличивает значение vx на i, а при отсутствии i – на 1 | |
Hi(i) | Byte | Возвращает старший байт аргумента |
Hi(w) | To же | То же |
Lo(i) | Возвращает младший байт аргумента | |
Lo (w) | То же | |
odd(l) | Boolean | Возвращает True, если аргумент – нечетное число |
Random (w) | Как у параметра | Возвращает псевдослучайное число, равномерно распределенное в диапазоне 0…(w-l) |
sgr (x) | X | Возвращает квадрат аргумента |
swap (i) | Integer | Меняет местами байты в слове |
swap (w) | Word |
При действиях с целыми числами тип результата будет соответствовать типу операндов, а если операнды относятся к различным целым типам, – типу того операнда, который имеет максимальную мощность (максимальный диапазон значений). Возможное переполнение результата никак не контролируется, что может привести к недоразумениям, например:
var а: Integer; х, у: Real; begin а: = 32767; {Максимально возможное значение типа INTEGER} х: = а + 2; {Переполнение при вычислении этого выражения!} у: = LongInt(а)+2; {Переполнения нет после приведения переменной к более мощному типу} WriteLn(x:10:0, у:10:0) end.
В результате прогона программы получим:
-32767 32769
Логический тип
Значениями логического типа может быть одна из предварительно объявленных констант FALSE (ложь) или TRUE (истина). Для них справедливы правила:
ord(False) = 0; ord(True) = 1; False < True; succ(False)= True; pred(True) = False.
Поскольку логический тип относится к порядковым типам, его можно использовать в операторе счетного типа, например:
var 1: Boolean; begin for 1: = False to True do….