Данные типа CHAR занимают один байт памяти. Константными значениями служат символы кодировки ASCII (Американский стандартный код обмена информации), содержащие, кроме латинских и русских (больших и малых) букв, цифр и используемых в TP специальных символов, различного рода служебные символы. Каждому символу соответствует некоторый код (целое число в диапазоне от 0 до 255), но не каждый символ имеет графическое представление (например, символы табуляции, символ возврата каретки и др.). Над данными типа CHAR можно производить операции, определенные для данных ординального типа. Функция ORD возвращает код аргумента. Если символ имеет графическое представление, например буква А, указать такой символ можно, заключив его изображение в апострофы – 'А'. Следующий оператор
FOR C := 'A' TO 'Z' DO
WRITELN('код символа', C, ' - ', ORD(C):3);
позволяет получить коды всех символов таблицы ASCII в диапазоне от A до Z.
Переменная C должна быть описана как CHAR.
При использовании значений типа CHAR, не имеющих графического представления, можно применить форму записи символов по их коду с помощью префикса #, например #65 – то же самое, что 'A' (65 – код символа A).
Ординальный предопределенный тип BOOLEAN можно рассматривать как перечислимый тип с описанием
TYPE BOOLEAN = (FALSE,TRUE);
Переменные этого типа занимают один байт памяти. Операции AND, OR, XOR, NOT для операндов булевского типа понимаются компилятором как булевские операции умножения ("и"), сложения ("или"), "исключающего или" и "отрицания". Пусть A и B – выражения булевского типа, тогда булевские операции определяются следующим образом:
A
B
not A
A and B
A OR B
A xor B
T
T
F
T
T
F
T
F
F
F
T
T
F
T
T
F
T
T
F
F
T
F
F
F
AND Логическое И
OR Логическое ИЛИ
XOR Логическое исключающее ИЛИ
NOT Логическое НЕ
Функция ORD дает значение 0, если аргумент имеет значение FALSE, и 1, если TRUE.
Простые типы вещественных данных не являются ординальными. С помощью этих типов данных в языке задается некоторое конечное подмножество рациональных чисел. Константы вещественного типа записываются в виде цепочки цифр с точкой, например: 0.0, 3.14, 17.4 (вещественная константа должна начинаться и заканчиваться цифрой). Константа может быть представлена в экспоненциальной форме, например, 1.0E+5, 0.01E-0, 3.14E.
Кроме того, TP позволяет работать со следующими вещественными типами (табл.).
Тип
Диапазон
Цифры
Байты
real
2.9e-39..1.7e38
11-12
Single*
1.5e-45..3.4e38
7-8
Double*
5.0e-324..1.7e308
15-16
Extended*
3.4e-4932..1.1e4932
19-20
comp
-9.2e18..9.2e18
19-20
*Это форматы чисел, с которыми работает математический сопроцессор.
Над данными вещественного типа в языке TP определены следующие операции и функции:
1. унарная операция + возвращает величину операнда;
2. унарная операция – меняет знак операнда;
3. бинарные операции +, - ,*, / возвращают результат выполнения соответствующих операций над вещественными числами;
4. отношения <, >, <=, >=, =, <> возвращают булевскую величину как результат сравнения операндов.
1. функция TRUNC(X) возвращает целую часть X;
2. функция ROUND(X) - округленное значение X до целого;
3. функция INT(X) - возвращает целую часть аргумента;
4. функция FRAC(X) - возвращает дробную часть аргумента;
5. функция PI - возвращает число 3.141592653897932385;
6. функция ABS(X) - абсолютную величину X;
7. функции SIN(X), COS(X), ARCTAN(X), LN(X), EXP(X), SQRT(X) и SQR(X) - возвращают значения синуса, косинуса, арктангенса, натурального логарифма, экспоненты, корня квадратного и квадрата аргумента X соответственно.