![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не выполняются строки кода [D6, D7, Win2k, WinXP]
Веталь © (2005-06-01 14:34:00)Есть некоторая процедура... алгоритм описан адекватно (метод Гаусса), но считается совершенно не так если все считать ручками на бумажке...
При проверке действий кода в дебагере выяснилось, что некоторые строчки кода не выполняют.... строки линейные (без условных оперераторов).... внутрь циклов обработчик поподает, но никаких действий не выполняет...
вот пример кода: (неисполняются строки помеченные -->)
if E[k,k]0 then
begin
--> d:=E[k,k];
for j:=n+1 downto 1 do {äåëèì ñòðîêó íà íåíóëåâîé ýëåìåíò}
begin
E[k,j]:=E[k,j]/E[k,k];
end;
j:=0;
for m:=k+1 to n do
for l:=k to n+1 do
--> E[m,l]:=E[m,l]-E[m-1,l]*E[m,k];
При попытке отследить значения парметров m и l в дебагере выдается надпись вида "Variable 'm' inacsessable here due to optimization" (если не ошибаюсь, дословно значит: Переменная недоступна здесь в виду оптимизации)...
Кто знает что за проблема???
Веталь (2005-06-01 14:47:00) [1]Нашел косяк... Спасибо огромное...
Юрий Зотов (2005-06-01 14:38:00) [2]Проблема, видимо, в неверных вычислениях. В опциях проекта на вкладке Compiler снимите птичку оптимизации, сделайте Build (именно Build, а не Compile) и пройдите отладчиком.