Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.14;
Скачать: CL | DM;

Вниз

Как заставить Delphi правильно считать?   Найти похожие ветки 

 
viny   (2005-05-26 00:59) [0]

Недавно начал изучать Delphi и столкнулся вот с какой проблемой.
Дана математическая функция и необходимо вычислить значения y, соответствующие каждому значению x в интервале (nx <= x <= kx), с шагом dx. Контрольный расчет производится при nx = -1.5, kx = 0.5, dx = 0.2. В программе пишу цикл While x <= kx do (предварительно присвоив x := nx), далее следует расчетная часть программы. Все числовые переменные типа Extended. При запуске расчет заканчивается при x = 0.3, хотя в программе явно указано, пока x меньше или равен 0. При уменьшении шага до 0.1 - последнее значение x = 0.4, при шаге 0.02 расчет закончился таки при x = 0.5! И еще трабла, при шаге 0.1 в какой то момент x становится равным 0, вместо 0 на экране появляется 0.999999999998 (что то вроде этого). Подскажите, пожалуйста, кому не в лом, как застаить Delphi правильно считать с нормальной человеческой точки зрения? Чтобы в результате выполнения операции -0.1 + 0.1 получался 0, а не 0.999999999998.


 
Almaz ©   (2005-05-26 03:48) [1]

Советую Вам прочитать статью: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374
Там есть ответы на Ваши вопросы.

Удачи.


 
Defunct ©   (2005-05-26 04:01) [2]

У вас цикл с предусловием, поэтому цикл завершается на один шаг раньше чем нужно. Используйте цикл с постусловием, и все будет нормально работать:


x := nx;
Repeat
// Вычисления
x := x + dx;
until x > kx; // Завершить при x > kx


> 0.999999999998.
быть такого не может, скорее 0.00000000~1. выводите округленный рез-тат на экран и все будет ок.
Например:

Label1.Caption := Format("X = %3.3F",[x]);



Страницы: 1 вся ветка

Текущий архив: 2005.06.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.029 c
14-1115861977
ArMellon
2005-05-12 05:39
2005.06.14
Хочу саб вуфер


3-1115359515
СержК
2005-05-06 10:05
2005.06.14
Как переместить указатель в DBLookupComboBox на первую запись


14-1116406263
Vulko
2005-05-18 12:51
2005.06.14
Что возвратить, если функция возвращает ссылку... ?


14-1117002747
syte_ser78
2005-05-25 10:32
2005.06.14
Прикольный исходник на паскале нашол :)


14-1116877897
Yegorchic
2005-05-23 23:51
2005.06.14
Описание программных средств, для написания сайтов