среда, декабря 17, 2008

Железная логика.

Я пишу программу.
Она не работает. То есть, работает неправильно. Когда она доходит до этого места:

if (flag1 = true) then
begin
flag2 := true;
break;
end;

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

flag1: True

И каждый раз, когда я дохожу до этого места, я говорю компьютеру: "Ну смотри! Условие же выполняется! Флаг1 равен тру! Это Правда, милый! Ты сам только что присвоил флагу значение Правды!".
А он: "Подумаешь, Правда!". Делает вид, что не замечает, что условие выполняется и идет себе дальше, не прерывая цикл.

И кто еще после этого говорит про женскую логику?

4 комментария:

  1. Заяц, что за индусячий код? :)
    Кто же пишет if(flag = true)? :)

    P.S. А почему не работает, не знаю. Бывает, что дебаггер исполняет старый (не проапдэйченный) бинарник, ходя при этом по новому исходнику, и тогда получается всякий бред.

    ОтветитьУдалить
  2. Сначала я писала if(flag), но потом я решила, что может он тупой и этого не понимает, и поставила везде "=". =)

    ОтветитьУдалить
  3. Рита, он выходит только из этого цикла. не знаю почему, но скорее всего break у тебя выходит только из одного цикла.

    ОтветитьУдалить
  4. Папа пришел и во всем разобрался)

    Оптимизация.......
    ....черт бы ее побрал.
    А я ведь знала, как ее отключать... и даже хотела это сделать, но... почему-то не сделала...

    2Никита
    Нет, алгоритм в итоге правильный.

    ОтветитьУдалить