Форум: "Прочее";
Текущий архив: 2013.09.15;
Скачать: [xml.tar.bz2];
ВнизНич-чо не понимаю! Найти похожие ветки
← →
Чайник © (2013-04-06 01:34) [0]Два вложенных цикла, ничего особенного, обыкновенные математические вычисления:
For n := 1 to FREQUENCIES_COUNT do Begin
LpN[n] := Calc.KlapanOutLdB.Lwn[n];
for j := 1 to Calc.DrossStepCount do begin
sqrtmp := SQRT(mp[j]);
dLn := pp[j]*FREQUENCIES_OF_OCTAVA[n]*(Calc.DrossStepDo[j]/1000)*sqrtmp/2/Calc.DrossStep[j].V;
dLn := -20*Log10(dLn);
if dLn>=20 then dLn := 20.0;
if dLn<=0 then dLn:= 0.0;
LpN[n] := LpN[n] - dLn;
end;
Calc.DrossStepLdBOut.Lwn[n] := LpN[n];
End;
Верхний предел цикла по j - Calc.DrossStepCount=16:
http://img197.imageshack.us/img197/8333/img1dd.jpg
Однако внутри цикла j=17 (!!!!!!):
http://img809.imageshack.us/img809/7226/img2de.jpg
У меня уже ум за разум зашел. Что это???
← →
Дмитрий С © (2013-04-06 01:38) [1]Calc.DrossStepCount не могла изменится за время выполнения?)
Как вариант не верь отладчику, выводи отладочные значения в лог. Скорее всего показанные тебе значения не верны, т.к. являются происками оптимизатора.
← →
Чайник © (2013-04-06 01:41) [2]
> Как вариант не верь отладчику, выводи отладочные значения
> в лог. Скорее всего показанные тебе значения не верны, т.
> к. являются происками оптимизатора.
Да, но оно и считает неверно!
← →
Дмитрий С © (2013-04-06 01:44) [3]
> Да, но оно и считает неверно!
Добавь лог. Прежде чем обвинять delphi убедись, что она неправильно выполняет твой код. Конечно есть вероятность, что это так, но скорее всего ошибка у тебя как раз в математике.
← →
Чайник © (2013-04-06 01:50) [4]Удалено модератором
← →
Чайник © (2013-04-06 01:50) [5]Удалено модератором
← →
Дмитрий С © (2013-04-06 01:52) [6]Удалено модератором
← →
Чайник © (2013-04-06 01:52) [7]Удалено модератором
← →
Германн © (2013-04-06 02:55) [8]Я тоже "ниччо не понимаю".
Вопрос оформленный в виде комиксов - это что-то новое!
:)
← →
MBo © (2013-04-06 08:35) [9]Если результаты не зависят от того, в каком порядке обходить цикл, то дельфийский оптимизатор делает счётчик таким, как хочет - чаще всего считает в обратном направлении до нуля.
Каждый месяц находится человек, открывший для себя отладчик, и возмущённый такой самодеятельностью.
Обычно утверждает, что это портит весь алгоритм и результаты.
Обычно последнее не подтверждается.
← →
MBo © (2013-04-06 08:40) [10]P.S. для проверки можно отключить оптимизацию в настройках компилятора.
← →
alexdn © (2013-04-06 12:23) [11]> MBo © (06.04.13 08:35) [9]
> Если результаты не зависят от того, в каком порядке обходить
> цикл, то дельфийский оптимизатор делает счётчик таким, как
> хочет - чаще всего считает в обратном направлении до нуля.
Да, тут именно такой случай, потому и значения переменных левые, это мусор.
← →
Palladin © (2013-04-06 12:43) [12]Чайник считает не верно.
← →
alexdn © (2013-04-06 13:11) [13]> Palladin © (06.04.13 12:43) [12]
верно
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2013.09.15;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.002 c