Определение ветки для If

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

Определение ветки для If

Сообщение Mikhail235 » 06.01.2013 18:04:08

Простая программа: при x<=-0.6 выбираем одну из веток в операторе If. Проблема заключается в том, что Паскаль не дает точного значения 0.6, а дает 0.59999999998, посему в точке 0.6 значение вычисляется не точно. Знаю, что это как-то обходится, даже когда-то на Си я это использовал, но вот как это сделать на Паскале...?
Подскажите, плз
Mikhail235
незнакомец
 
Сообщения: 4
Зарегистрирован: 06.01.2013 17:56:40

Re: Определение ветки для If

Сообщение bormant » 06.01.2013 18:15:02

Вариантов несколько.
1) использовать тип "пошире", extended.
2) вместо 0.6 использовать 0.6+eps, где eps -- минимальное число, которое можно прибавить к 0.6 так, что его значение изменится. Подробнее см. в этой теме: viewtopic.php?f=23&t=8717
Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01

Re: Определение ветки для If

Сообщение Mikhail235 » 06.01.2013 20:57:47

Спасибо. Помогло изменение типа на extended
Mikhail235
незнакомец
 
Сообщения: 4
Зарегистрирован: 06.01.2013 17:56:40

Re: Определение ветки для If

Сообщение stikriz » 07.01.2013 01:09:56

Вообще, напишите функцию сравнения дробных чисел, где третьим параметров передавайте точность.
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Определение ветки для If

Сообщение Ask » 07.01.2013 03:05:48

stikriz писал(а):напишите функцию сравнения дробных чисел

Зачем? В учебных целях?
Я считаю, такие советы нужно давать обязательно с оговоркой --
"сейчас напиши, но вообще-то, конечно, следует пользоваться стандартной функцией".
Иначе у обучаемого сформируется вредная привычка изобретать велосипед :)
Ask
постоялец
 
Сообщения: 163
Зарегистрирован: 25.12.2008 03:51:37

Re: Определение ветки для If

Сообщение bormant » 07.01.2013 19:44:42

Ask писал(а):следует пользоваться стандартной функцией

Позволите поинтересоваться именем стандартной функции, подходящей случаю?
Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01

Re: Определение ветки для If

Сообщение stikriz » 07.01.2013 22:14:00

CompareValue из модуля math
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47


Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru