![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 20.10.2018
Сообщений: 16
|
![]()
Решение дифференциального уравнения методом Эйлера-Коши
Не могу понять, как правильно вывести результат Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,714
|
![]()
Сама функция какая-то странная:
Код:
Не говоря уже о том, что проверять double на = или != - всё равно, что переходить улицу в час пик с завязанными глазами. Но учебные задания бывают и ещё более идиотическими. Последний раз редактировалось digitalis; 04.06.2020 в 21:13. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]() |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,714
|
![]()
Если вопрос об переходе улицы - то на зелёный свет с открытыми глазами.
Если об этой странной функции, то она д.быть определена для любого значения аргумента. А если о проверке на равенство real, то это азбучная истина: 2*2 м.быть не равно 2+2 для real, поэтому проверяют на Abs( разность двух значений ) < eps. Последний раз редактировалось digitalis; 06.06.2020 в 14:02. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]() |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,714
|
![]()
Ну какое тут "подробно" . Из-за особенностей машинной арифметики значение, полученное одним путём, может быть не равным тому же значению, полученному другим путём, хотя вычисляя на бумажке - знаем, что одно и то же. Не приходилось видеть, к примеру, в результатах 2.99999, когда мы точно знаем, что д.быть 3.0 ? И если тупо сравнивать на =, то равные значения могут оказаться хоть на 1 бит отличающимися, и тогда прокрутим (или недокрутим) один лишний цикл, например. Поэтому для real типично: if Abs(var1 - var2) < eps
Я спросил у Яндекса: "сравнение float на равенство"... Первая же ссылка на Хабр. Последний раз редактировалось digitalis; 06.06.2020 в 20:22. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]() |
![]() |
![]() |
![]() |
#8 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
Нужно самому объявить eps со значением желаемой точности сравнения.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
![]() |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,714
|
![]()
Это каждый решает сам - сколько точности ему достаточно для данной задачи.
" Каждый выбирает для себя - Женщину, религию, дорогу... " © Ю. Д. Левитанский ИЧСХ : ТС давно слиняла, а дяди тут рвут рубахи в поисках докопаться до истины ![]() Последний раз редактировалось digitalis; 06.06.2020 в 20:12. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывести результат SQL в Memo | DKENT | БД в Delphi | 6 | 13.01.2018 18:46 |
Вывести результат | DKENT | PHP | 4 | 29.03.2017 00:41 |
Нужно вывести результат класса | prikolist | Общие вопросы C/C++ | 20 | 23.05.2009 20:06 |
Как вывести результат работы php скрипта | eldar | Работа с сетью в Delphi | 21 | 08.08.2008 14:16 |
как вывести результат расчета????? в VB | Николай969 | Помощь студентам | 1 | 17.01.2008 17:45 |