Форум программистов, компьютерный форум CyberForum.ru

Засада с машинным эпсилон, или Либо я дурак - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Тема: Записи. Работа с текстовыми файлами http://www.cyberforum.ru/cpp-beginners/thread634393.html
Тема: Записи. Работа с текстовыми файлами. Дан файл f, содержащий сведения о багаже нескольких пассажиров. Багаж пассажира характеризуется количеством вещей и общим весом вещей. Сведения о багаже каждого пассажира представляют собой запись с двумя полями: одно поле целого типа (количество вещей) и одно - действительное (вес в килограммах). Найти число пассажиров, имеющих более двух вещей и число...
C++ Отобразить вектор в обратном порядке не используя реверсивные итераторы Отобразить вектор в обратном порядке не используя реверсивные итераторы никак не могу в цикле вывести последний(самый первый) элемент http://www.cyberforum.ru/cpp-beginners/thread634358.html
C++ минимум среди сумм элементов диагоналей, параллельных главной
Оформить каждую задачу в виде функции. Все необходимые данные для функций должны передаваться в качестве параметров. Использование глобальных переменнх в функциях не допускается. По теме "Массивы". Найти: 1) сумму элементов в тех строках, которые не содержат отрицательных элементов; 2) минимум среди сумм элементов диагоналей, параллельных главной. По теме "Обработка символьных данных и...
Создание папки в Linux C++
Привет форумчане!! Подскажите апишку с директивой что бы в линухе можно было создать папку в указаной пользователем директории!?
C++ Включние заголовочного файла name.h http://www.cyberforum.ru/cpp-beginners/thread634321.html
Доброго времени суток. Суть проблемы такова: допустим есть папка, в которой куча хедеров (.h) + в ней еще папки в которых еще куча хедеров и т.д. Есть главный main.h который подключает другие библиотеки из этой папки, а подключенные подключают другие и т.д. Так вот, во всех хедерах подключение написано следующем образом : //main.h #include <main/temp.h> #include <temp2.h> Само сабой это...
C++ Что такое char* ? char* szString = "Randy"; Объясните, чем в данном случае является szString? Если это указатель, то почему ему напрямую можно присвоить значение? Ведь указатели с адресами работают. Очень уж непонятна мне роль * в этом примере. подробнее

Показать сообщение отдельно
kozlik_kozlik
7 / 11 / 0
Регистрация: 01.08.2012
Сообщений: 99
09.08.2012, 23:12  [ТС]     Засада с машинным эпсилон, или Либо я дурак
ValeryS

Если вы считаете что 1.5>1.0 это тоже самое что 1.25>1
тогда извините
А вот я сейчас спрошу, почему должно быть "то же самое", и ты не сможешь ответить.

Давай по порядку. Вот просто по-тупому.

Представим, что есть такой очень хреновый тип данных, для которого 1,125 уже неотличимо от 1, а всё, что больше, отличимо. Ну так, чтобы шагов поменьше было.

Первый код.
Первый оборот цикла: е=0,5, а=1,25, счётчик=1, а отличается от 1, продолжаем.
Второй оборот цикла: е=0,25, а=1,125, счётчик=2, а не отличается от 1, остановились.

Результат: е=0,25, 2 шага.

Второй код.
Первый оборот цикла: сравниваем 1,5 и 1, различается, считаем дальше, е=0,5, счётчик=1.
Второй оборот цикла: сравниваем 1,25 и 1, различаются, считаем дальше, е=0,25, счётчик=2.
Третий оборот цикла: сравниваем 1,125 и 1, не различаются, выходим из цикла.

Результат: е=0,25, 2 шага.

А теперь ткни пальцем, что тут неправильно. Единственная неточность - второй код делает три шага, а у меня выводится два. Похрен, мне надо было оценить порядок величины, проблема вообще не в этом.

класная отмазка
Ага, не верь глазам своим (с) Козьма Прутков.

а для других???
Ты тему-то читал? В Qt Creator и Builder второй код даёт то же самое при любых типах из перечисленных, что и при long double. И именно в этом, если ты не заметил, и состоит проблема. Онлайн-IDE выдаёт абсолютно аналогичные результаты и при float, и при double, и при long double для обоих кодов. Собственно в этом и проблема - в Qt Creator и Builder происходит хреновина. ПРОБЛЕМА НЕ В ЛОГИКЕ ВЫЧИСЛЕНИЯ ЭПСИЛОН. ПРОБЛЕМА В СТРАННОМ ПРЕОБРАЗОВАНИИ ТИПА, КОТОРОГО НЕ ДОЛЖНО БЫТЬ, НО ПРОИСХОДИТ.

Люди, вы чего? Уже второй чудесатый "ответ" в теме. Да с каким гонором-то. Жара что ли так действует?
 
Текущее время: 05:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru