АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Программа оценки машинного нуля

Читайте также:
  1. III. Обучение по образовательным программам
  2. IV. Программа соревнований
  3. USB программатор ЭБУ.
  4. V. Критерии оценки конкурса
  5. V. ПРОГРАММА ИГР
  6. V. ПРОГРАММА МЕРОПРИЯТИЯ
  7. V. ПРОГРАММА МЕРОПРИЯТИЯ
  8. V. ПРОГРАММА СОРЕВНОВАНИЙ.
  9. VI. Программа мероприятия
  10. VII. Критерии оценки работ
  11. Алгоритм получения рейтинговой оценки также может быть модифицирован. Вместо формулы, рассмотренной выше, можно использовать одну из нижеследующих
  12. Анализ взаимосвязи уровня социального интеллекта и самооценки в подростковом возрасте

Программа оценки машинного нуля. В вычислительных задачах при программировании итерационных алгоритмов, завершающихся при достижении заданной точности, часто нужна оценка "машинного нуля", т.е. числового значения, меньше которого невозможно задавать точность данного алгоритма. Абсолютное значение "машинного нуля" зависит от разрядной сетки применяемой ЭВМ, от принятой в конкретном трансляторе точности представления вещественных чисел и от значений, используемых для оценки точности. Следующая программа оценивает абсолютное значение "машинного нуля" относительно близких (по модулю) к единице переменных типа float:

 

 

В строках программы слева помещены порядковые номера, которых нет в исходном тексте. Номера добавлены только для удобства ссылок на операторы. Строка 1 - комментарий с названием программы. Комментарии в строках 4, 5, 6 поясняют назначение переменных. Объяснить работу программы проще всего с помощью трассировочной таблицы (табл. 2.1).

Во втором столбце таблицы указаны номера строк с исполняемыми операторами. Значения переменных даны после выполнения соответствующего оператора. Только что измененное значение переменной в таблице выделено. После подготовительных присваиваний (строки 6, 7) циклически выполняются операторы 8-11 до тех пор, пока истинно отношение el>1.0, проверяемое в условном операторе. При каждой итерации значение переменной е уменьшается вдвое, и наконец, прибавление (в строке 9) к 1.0 значения е не изменит результата, т.е. el станет равно 1.0.

При использовании компилятора Turbo С получен следующий результат:

При использовании в строке 5 для определения переменных е, el типа double, т.е. при использовании двойной точности, получен иной результат:

Оба результата не хуже значений, приведенных в Приложении 2, для предельных констант FLT_EPSILON и DBL_EPSILON.

Таблица 2.1

Трассировочная таблица

 

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)