В таблице приводится список стандартных функций, обеспечивающих связь между различными типами данных
Обращение
| Тип аргумента
| Тип результата
| Действие
|
оrd(x)
| Любой порядковый
| I
| Порядковый номер значения х в его типе
|
pred(x)
| Любой порядковый
| То же, что для х
| Предыдущее относительно х значение в его типе
|
suss(x)
| Любой порядковый
| То же, что для х
| Следующее относительно х значение в его типе
|
chr(x)
| Byte
| Char
| Символ с порядковым номером х
|
odd(x)
| I
| boolean
| True, если х нечетное; False, если х четное
|
Функции ord, pred и succ применимы только к порядковым типам. Из простых типов это все, кроме вещественного.
Функция ord, применяемая к целому числу, дает его собственное значение. Например,
ord(-35)=-35; ord(128)=128
Если аргумент целый, то, например, оператор y:=pred(x) эквивалентен y:=x-1, а y:=succ(x) эквивалентен y:=x+1
Функция chr(x) является обратной к функции ord(x), если x- символьная величина. Это можно выразить формулой: chr(ord(x))=x,
где x- символьная величина.
Например, для кода ASCII справедливо: ord(’a‘)=97; chr(97)= ’a‘
Булевский тип также является порядковым, порядок расположения двух его значений таков: false, true. Отсюда справедливы следующие правила:
Правила
| Пример
|
ord(false)=0
ord(true)=1
false<true
succ(false)=true
pred(true)=false
| var
A, B: Byte; {целый тип}
C, D, E, F: Boolean; {логич. тип}
begin
A := Ord(False); {A=0}
B := Ord(True); {B=1}
C := Pred(False); {ошибка}
D := Pred(True); {D=False}
E := Succ(False); {E=True}
F := Succ(True); {ошибка}
end.
|