Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не задаются значения переменных!

552
30 апреля 2006 года
Ivanhoe
373 / / 30.04.2006
Ой, совсем плохой стал...
В 7-й делфе пишу:

 
Код:
var
  T: Double;

begin
  T := 0; // Т.е. явно задаю значение 0!
end;


Трабла 1) Не могу поставить брякпоинт на эту строку...
Трабла 2) Значение не задается!!! Т.е. начинаю трейсить и вижу, что там не 0 а нечто вроде 1,234723432742394e-303 или как-то так.

А если после нее дописать нечто вроде

 
Код:
// B: Integer
  B := Round(T);


То значение задастся еще ДО выполнения этой строки!

Помогите! Прогу сдавать в среду-у-у-у!

ЗЫ Переменная локальная
344
30 апреля 2006 года
Delpher
493 / / 14.08.2005
Цитата:
Originally posted by Ivanhoe
Ой, совсем плохой стал...
В 7-й делфе пишу:

 
Код:
var
  T: Double;

begin
  T := 0; // Т.е. явно задаю значение 0!
end;


Трабла 1) Не могу поставить брякпоинт на эту строку...
Трабла 2) Значение не задается!!! Т.е. начинаю трейсить и вижу, что там не 0 а нечто вроде 1,234723432742394e-303 или как-то так.

А если после нее дописать нечто вроде

 
Код:
// B: Integer
  B := Round(T);


То значение задастся еще ДО выполнения этой строки!

Помогите! Прогу сдавать в среду-у-у-у!

ЗЫ Переменная локальная




Ты по результатам определяй лучше , а не в процессе трассировки.. Если ты присваиваешь переменной значение, то эта переменая примет это значение.. До присвоения в в переменных может быть мусор, случайные значения.. Если конечно делфа у тебя нормальная

10
30 апреля 2006 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by Ivanhoe
Ой, совсем плохой стал...


Попробуй сменить напиток.

Цитата:
Трабла 1) Не могу поставить брякпоинт на эту строку...


Строку выкидывает оптимизатор, при этом подсказку выводит в Messages.

Цитата:

Трабла 2) Значение не задается!!! Т.е. начинаю трейсить и вижу, что там не 0 а нечто вроде 1,234723432742394e-303 или как-то так.


Согласно правилам Дельфи, значение простых неинициализированных переменных не определено. Бросаем пить окончательно и вдумчиво курим справку.

Цитата:
Originally posted by Delpher
Если конечно делфа у тебя нормальная


Безалкогольное пиво - первый шаг к резиновой женщине. Пренебрежение результатами трассировки - первый шаг к расхождению теории с практикой, заканчивается обычно нахождением "бага в процессоре".

552
30 апреля 2006 года
Ivanhoe
373 / / 30.04.2006
Ну я соббссно и начал это копать потому что результат меня не удовлетворил... Пишу прогу для рисования 3d-объеков. И надо умножить на матрицу с синусами-косинусами. Ну вот он и умножает на ЭТО! А матрица 4x4 и не одна. Не припишеш же к каждому элементу Round )))
552
30 апреля 2006 года
Ivanhoe
373 / / 30.04.2006
Цитата:
Originally posted by Freeman
Попробуй сменить напиток.


Строку выкидывает оптимизатор, при этом подсказку выводит в Messages.


Согласно правилам Дельфи, значение простых неинициализированных переменных не определено. Бросаем пить окончательно и вдумчиво курим справку.


Безалкогольное пиво - первый шаг к резиновой женщине. Пренебрежение результатами трассировки - первый шаг к расхождению теории с практикой, заканчивается обычно нахождением "бага в процессоре".



Ааааа, начинаю втыкать... Типа оптимизатор выкинул (за ненадобностью?), и соответственно присвоение не происходит и значение переменная ниинициализированной?
А если что-то с ней делаем, то не выкидывает

552
30 апреля 2006 года
Ivanhoe
373 / / 30.04.2006
:P :P :P
Вылечил!

 
Код:
var
  D: Double
begin {$O-}
  D := 0;
end; {$O+}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог