|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
06.10.2011, 15:24 | #11 | |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
Цитата:
Двоичная система счисления - одна из причин, но она не единственная причина того, что дробные числа представляются с некоторой ошибкой в иных системах счисления. То же самое и может быть, если бы система была троичной, пятиричной, n-чной. |
|
09.10.2011, 00:54 | #12 | ||
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
Каким-то образом я пропустил эти два поста в этой теме.. Очень извиняюсь за опоздание с ответом.
ох.. JUDAS, кончай уже про эмоции.. обрати, наконец, внимание на суть. Цитата:
(Кстати, зачем исправлять старые мессаджи? Это нарушает ход дискуссии. Ты пиши новые.) Я использовал в данном случае последнюю версию FPC, 2.4.4. Но дело, повторяю - не в этом. Вникни. Задавай вопросы, я всегда отвечу (сейчас подпишусь на эту тему и больше не пропущу ничего). Успехов. Цитата:
Но дело все же не в дробности и не в системе, а в конечности представления чисел в машине. И это, как я уже писал, принципиально неустранимо. В большинстве случаев это почти не влияет на результат, но в некоторых (как, например, завдача в этой теме) результат очень сильно зависит, и даже не от точности самой по себе, а от самого ФАКТА, что вычисления не совсем точны (данном случае результат отличается в два раза, но может быть и гораздо больше). В таких случаях теребуется делать специальные коррекции в алгоритме (см. выше мое решение), причем общего рецепта таких коррекций тоже нет (и быть не может). Этому аспекту обычно уделяется очень мало внимания, но от этого его важность в подобных ситуациях не становится меньше.
Предпочитаю на "ты".
|
||
09.10.2011, 13:15 | #13 | |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
Цитата:
Проблеме с ошибками сравнивания вещественных чисел столько же лет, как мне. Вычитал в какой то статье бред 40-летней давности на эту тему и лечишь тут форумчан. ----- Мой тебе совет парень, прежде чем лечить опытных программистов, я не имею ввиду только себя, сам наберись опыта, и учись принимать поражения и обломы более спокойно и уравновешено, "папа" блин
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
|
09.10.2011, 13:20 | #14 |
Ээээ
Пользователь
Регистрация: 13.09.2011
Сообщений: 99
|
TinMan напиши в личку пожалуйсто , нужна твоя помощь
|
09.10.2011, 13:48 | #15 | |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
JUDAS, я не знаю, как еще тебе объяснить. Хорошо, давай попробуем так..
Сначала я приведу условие этой задачи (на всякий случай) Цитата:
4.0 * 3.8 * 3.6 * 3.4 * 3.2 * 3.0 * 2.8 * 2.6 * 2.4 * 2.2 * 2.0 Правильно? Вроде, да. Теперь копируем эту строчку в буфер, вызываем калькулятор (я использовал стандартный calc из Windows 7), и нажимаем в нем ctrl-v. Затем нажимаем Enter. Получаем (копирую сюда ответ) 137306.63890944 Ты видишь отличие от твоего ответа? Твой ответ: Z= 68653.32 Отличие РОВНО в 2 раза. Дело в том, что твой код не домножает на последнюю двойку (которую я выделил красным). До нее не доходит дело, потому что при многократном вычитаний (v:=v-0.2 получается, что параметр v чуть-чуть меньше единицы. Понятно теперь? Постарайся вникнуть. И не надо так много эмоций, это чисто технический вопрос.
Предпочитаю на "ты".
|
|
09.10.2011, 14:02 | #16 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
TinMan, с этой части твоего недовольсва в моём коде, врожде разобрались, сказал же выше, ошибочно поменял местами декремент и суммирование.
Я тебе говорю про сравнивание вещественных чисел, которое выполнялось через одно место процессорами, серии конца 80-х начала 90-х.
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
09.10.2011, 14:45 | #17 | |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
Цитата:
У меня просьба тогда: запость тут, пожалуйста, исправленный вариант кода, чтоб я разобрался. Спасибо.
Предпочитаю на "ты".
|
|
09.10.2011, 15:15 | #18 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
Запостил
Код:
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
09.10.2011, 15:46 | #19 | |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
Цитата:
Смотри. Я в твой код вставил одну строку - печать v после всего цикла. ПОлучилось вот, что: Код:
Код:
Так вот, JUDAS, это и есть ТО, о чем я говорил выше. НЕЛЬЗЯ проверять на точное равенство (в данном случае на точное граничное значение). Твое исправление - это чистой воды подгонка. Если изменить параметры (допустим, увеличить шаг) равенство может снова выполниться, и тебе придется откатывать изменения назад.. Ну, понял, наконец?? Если нет - я умываю руки.. )) Серж, ведь ты наверняка следишь за развитием этой темы и не вылезаешь изпацтала )). Хватит уже потешаться, бери у меня эстафету и попробуй сам объяснить.. Ну, сделай доброе дело, помоги открыть глаза человеку )).
Предпочитаю на "ты".
|
|
09.10.2011, 15:57 | #20 | |||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Раз у Вас обнаружилась такая брешь в познаниях, то ОЧЕНЬ рекомендую Вам ознакомиться со статьями (я на их на данном форуме неоднократно приводил ссылки, но не поленюсь повторить ещё раз). если непонятно, что выдаст вот такой кусочек кода: Цитата:
для понимания происходящих процессов обычно (в очередной раз) рекомендую ознакомиться с: статья Антона Григорьева "Неочевидные особенности вещественных чисел" и статья Загадки округления p.s. JUDAS, и теперь подумайте, кто сказал бред, а кто нет.. |
|||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
синусы и ко. циклы, вроде циклы | Scorch92 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 22.12.2010 19:26 |
Циклы - вложенны циклы? | tigga | Microsoft Office Excel | 5 | 19.02.2010 23:36 |
Циклы | Mizantrop | Помощь студентам | 0 | 04.11.2009 18:32 |
циклы | Mizantrop | Помощь студентам | 0 | 04.11.2009 18:06 |
Циклы | }{oт@бь)ч | Общие вопросы Delphi | 4 | 05.02.2009 16:41 |