|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.06.2020, 10:39 | #1 |
Новичок
Джуниор
Регистрация: 20.10.2018
Сообщений: 16
|
Как правильно вывести результат
Решение дифференциального уравнения методом Эйлера-Коши
Не могу понять, как правильно вывести результат Код:
|
04.06.2020, 11:13 | #2 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
Сама функция какая-то странная:
Код:
Не говоря уже о том, что проверять double на = или != - всё равно, что переходить улицу в час пик с завязанными глазами. Но учебные задания бывают и ещё более идиотическими. Последний раз редактировалось digitalis; 04.06.2020 в 21:13. |
06.06.2020, 12:57 | #3 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
|
06.06.2020, 13:57 | #4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
Если вопрос об переходе улицы - то на зелёный свет с открытыми глазами.
Если об этой странной функции, то она д.быть определена для любого значения аргумента. А если о проверке на равенство real, то это азбучная истина: 2*2 м.быть не равно 2+2 для real, поэтому проверяют на Abs( разность двух значений ) < eps. Последний раз редактировалось digitalis; 06.06.2020 в 14:02. |
06.06.2020, 14:14 | #5 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
|
06.06.2020, 14:54 | #6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
Ну какое тут "подробно" . Из-за особенностей машинной арифметики значение, полученное одним путём, может быть не равным тому же значению, полученному другим путём, хотя вычисляя на бумажке - знаем, что одно и то же. Не приходилось видеть, к примеру, в результатах 2.99999, когда мы точно знаем, что д.быть 3.0 ? И если тупо сравнивать на =, то равные значения могут оказаться хоть на 1 бит отличающимися, и тогда прокрутим (или недокрутим) один лишний цикл, например. Поэтому для real типично: if Abs(var1 - var2) < eps
Я спросил у Яндекса: "сравнение float на равенство"... Первая же ссылка на Хабр. Последний раз редактировалось digitalis; 06.06.2020 в 20:22. |
06.06.2020, 15:27 | #7 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
|
06.06.2020, 16:04 | #8 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,341
|
Нужно самому объявить eps со значением желаемой точности сравнения.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
06.06.2020, 16:13 | #9 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
|
06.06.2020, 20:09 | #10 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
Это каждый решает сам - сколько точности ему достаточно для данной задачи.
" Каждый выбирает для себя - Женщину, религию, дорогу... " © Ю. Д. Левитанский ИЧСХ : ТС давно слиняла, а дяди тут рвут рубахи в поисках докопаться до истины Последний раз редактировалось 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 |