Главная страница
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.037 c
1-1117444953
54321
2005-05-30 13:22
2005.06.14
Поверх всех окон


4-1113589617
ComPort
2005-04-15 22:26
2005.06.14
Срочно нужна помощь, трабла с COM портом...


3-1115369002
Shark
2005-05-06 12:43
2005.06.14
Записи помеченные на удаление.


1-1117568412
Demonix
2005-05-31 23:40
2005.06.14
Компоненты ListBox и ComboBox


1-1117126665
Serg1981
2005-05-26 20:57
2005.06.14
ListView со строками разного цвета