Иллюстрированный самоучитель по Turbo Pascal

Вещественные типы

Чтобы получить правильный результат (например, для типа REALTYPE = REAL он будет 9. 09494701772928Е-0013), программу необходимо изменить следующим образом:

{$N+,E+}
type
RealType= Real;
var
epsilon, epsl:RealType;
begin
epsilon: = 1;
repeat
epsilon: = epsilon/2;
epsl: = 1 + epsilon
until epsl = 1;
WriteLn(2*epsilon)
end.

Следует учесть, что тип REAL оптимизирован для работы без сопроцессора. Если Ваш ПК оснащен сопроцессором, использование типа REAL приведет к дополнительным затратам времени на преобразование REAL к EXTENDED. Поэтому никогда не используйте REAL на ПК с сопроцессором, т.к. дополнительные затраты времени на преобразование типов могут свести на нет все преимущества сопроцессора.

При разработке программ, критичных ко времени счета, следует заменять его типами SINGLE или DOUBLE: по сравнению с типом REAL скорость вычислений на машинах с сопроцессором в этом случае увеличивается в 2…3 раза. Если в ПК нет арифметического сопроцессора, скорость обработки данных всех вещественных типов приблизительно одинакова.

Особое положение в Турбо Паскале занимает тип СОМР, который трактуется как вещественное число без экспоненциальной и дробной частей. Фактически, СОМР – это "большое" целое число со знаком, сохраняющее 19…20 значащих десятичных цифр (во внутреннем представлении СОМР занимает 8 смежных байт). В то же время в выражениях СОМР полностью совместим с любыми другими вещественными типами: над ним определены все вещественные операции, он может использоваться как аргумент математических функций и т.д. Наиболее подходящей областью применения типа СОМР являются бухгалтерские расчеты: денежные суммы выражаются в копейках или центах и действия над ними сводятся к операциям с достаточно длинными целыми числами.

Для работы с вещественными данными могут использоваться встроенные математические функции, представленные в табл. 2.5. В этой таблице REAL означает любой вещественный тип, INTEGER – любой целый тип.

Таблица 4.5. Стандартные математические функции Турбо Паскаля.

Обращение Тип параметра Тип результата Примечание
abs (x) Real, Integer Тип аргумента Модуль аргумента
АrсТаn (х) Real Real Арктангенс (значение в радианах)
cos (х) To же То же Косинус, угол в радианах
ехр (х) " " Экспонента
frас (х) " " Дробная часть числа
int(x) " " Целая часть числа
ln(x) " " Логарифм натуральный
Pi   " π = 3.141592653…
Random   " Псевдослучайное число, равномерно распределенное в диапазоне 0…[1]
Pandom(x) Integer Integer Псевдослучайное целое число, равномерно распределенное в диапазоне 0…(х-1)
Randomize     Инициация генератора псевдослучайных чисел
sin(x) Real Real Синус, угол в радианах
sqr (x) To же То же Квадрат аргумента
sqrt (x) " " Корень квадратный
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.