Лекция 01. Тема Общая характеристика языков программирования высокого уровня
Download 4.1 Mb. Pdf ko'rish
|
Lektsii po YaP Lukinova 2 sem
3.2. Вещественный тип
Вещественный тип, т.е. тип чисел с плавающей запятой моделирует действительные числа. Однако следует помнить, что их представление всегда является аппроксимацией, т.к. ни одно из них не может быть точно представлено в виде числа с плавающей точкой (рис. 6). Рисунок 6. Внутреннее представление числа с плавающей запятой Большинство ЯП содержат два типа: float (real) – стандартный размер, обычно в 4 байта памяти; и double – мантисса занимает в 2 раза больше бит памяти. Константы действительного типа можно представить следующими тремя способами, которые в языках являются предопределенными: запись с точкой: 10.4 , -0.000000000145 , запись с порядком: 104Е-01 , -145Е-12 , запись с точкой и порядком: 1.04Е+01 , -1.45Е-10 . Основные операции над данными вещественного типа: сложение (+), вычитание (-), умножение (•), деление (/), возведение в степень (**), сравнение на равенство (=), сравнение на неравенство (/=), сравнение на меньше (<), сравнение на меньше или равно, (<=), сравнение на больше (>), сравнение на больше или равно (>=), унарный плюс (+), унарный минус (-), абсолютное значение (abs). Однако при обработке действительных чисел с конечной точностью представления следует учитывать возможные ошибки округления (особенно при сравнении их на равенство и неравенство). Поэтому следует сравнивать действительные числа лишь на приближенное равенство и неравенство, т.е. в некоторой окрестности, например: var x,y : real; begin if abs(x-y) < 0.00001 then ... end. Кроме этого, при вычислении выражения с действительными числами возникают погрешности, которые могут оказать существенное влияние на Мантисса 23 бита(52) Знак числа Знак порядка Порядок 8 бит(11) 0 1 2 31 получаемые результаты. Следующие рекомендации позволяют уменьшить погрешность вычислений: при сложении ряда чисел определять все положительные и отрицательные слагаемые и складывать их поочередно; складывать наименьшие члены сумм первыми; избегать вычитания двух почти равных чисел; если это все же необходимо, производить вычитание до умножения или деления (т.е. лучше записать a*(b-c), чем a*b-a*c); избегать показателей степени в форме действительных чисел, так как в этом случае степень вычисляется через log и ехр; напротив, х**2 вычисляется как х * х; использовать операцию sqrt(х) при вычислении x 0,5 , так как sqrt обычно вычисляется точнее; использовать в процессе вычисления максимально возможную точность, если это необходимо; избегать цепочек операций, в которых используются неточные значения; использовать алгоритмы, для которых известны оценки и границы ошибок. Download 4.1 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling