|
|
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Если в if стоит два and, то всё нормально. Я так думаю, что и выделение с скобки отдельных частей вышеуказанной конструкции будет работать, вот так - if (((a=true) and (b=true)) and (c=true)) Хотя, кто знает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 09:49 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Sergi Если в if стоит два and, то всё нормально. Я так думаю, что и выделение с скобки отдельных частей вышеуказанной конструкции будет работать, вот так - if (((a=true) and (b=true)) and (c=true)) Хотя, кто знает? Почему решил, что не работает? Что показывает отладчик на конструкции : if (a and b and c) then ... ? Ну и да - директивы B+ / B- в помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 10:05 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Пятничный стёб ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 10:33 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
конечно, стеб - там 2 and ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 10:39 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Уточнение. Ну да, конечно, два and и три условия выполнения. Сорри. Не проснулся еще. Конструкция из двух and и трёх условий не выполняется, а сама программа компилируется и работает. Отдельные условия внутри if выполняются на 100%. Приходится вначале делать проверку на два and, потом проверять последнее сравнение. Когда разделяю, всё выполняется. Как так может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 10:54 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Sergi> Как так может быть? Так это в честь пятницы или всерьёз? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 10:55 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Всерьёз. Я выше уточнил вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 10:58 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Sergi, пример, выдающий неверный результат, мы сами должны придумать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:03 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Sergi Всерьёз. Я выше уточнил вопрос. Например, ты со скобками запутался. Причин может быть много. Но код, который "не работает", ты не показал. Да и текст "ошибки" хранишь в секрете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:03 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Никакого кода ошибки не выдаётся, просто общий результат if - отрицательный, то есть не выполняется. А пример стоит в заголовке темы. Исходный код такой. За два выполнения процедуры мне надо отработать два условия if: var a,b,c: boolean; begin if ((a=false) or (b=false) or (c=false)) then begin a:=true; b:=true; c:=true end else if ((a=true) and (b=true) and (c=true)) then showmessage('!!'); end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:10 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Sergi Никакого кода ошибки не выдаётся, просто общий результат if - отрицательный, то есть не выполняется. А пример стоит в заголовке темы. Как то вот так: if ((a=true) and (b=true) and (c=true)) then showmessage('!'); а типы и значения переменных наши или ваши? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:16 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Подправил условия задачи выше. Только переменные var a,b,c: boolean; описаны, как глобальные, а не внутри процедуры. Это естественно. при c:=true; - точку с запятой пропустил здесь в примере, в программе все правильно стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:18 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Sergi Подправил условия задачи выше. подправьте еще раз: - объявите типы переменных - присвойте переменным начальные значения - приведите полученный результат - приведите правильный, с вашей точки зрения, результат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:23 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:26 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Начальные значения естественно - false, даже если этого не объявлять. Может Делфи-6 глючит у меня? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:27 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
DimaBr, поспешил немного, лучше было б, чтобы автор сам показал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:30 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Sergi Начальные значения естественно - false, Если начальное значение FALSE, то почему он, по вашему, должен заходить в секцию ELSE ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:33 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Sergi Начальные значения естественно - false, даже если этого не объявлять. все-таки, сделайте, как я прошу, не заставляйте меня загружать Delphi. Если вам нужно получить ответ на вопрос, то дайте нам все необходимые условия для ответа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:34 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Я сам сильно удивляюсь, что у меня не такой результат, как приведён выше. Мне пришлось разбить условие на два, тогда всё пошло хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:34 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:35 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
DimaBr Sergi Начальные значения естественно - false, Если начальное значение FALSE, то почему он, по вашему, должен заходить в секцию ELSE ? Вторым проходом процедуры, должен заходить. У меня в программе опрос этой процедуры идёт циклически. В какой-то момент одна из переменных приобретает состояние false. Первым проходом всё должно выставляться в true. Вторым проходом - выполняться условие типа showmessage. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:35 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Sergi У меня в программе опрос этой процедуры идёт циклически. В вашем тексте нет никакой процедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:42 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Sergi DimaBr пропущено... Если начальное значение FALSE, то почему он, по вашему, должен заходить в секцию ELSE ? Вторым проходом процедуры, должен заходить. У меня в программе опрос этой процедуры идёт циклически. В какой-то момент одна из переменных приобретает состояние false. Первым проходом всё должно выставляться в true. Вторым проходом - выполняться условие типа showmessage. так вы снимаете свой вопрос, или все же приведете ПОЛНЫЙ неработающий пример? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:43 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Sergi Может Делфи-6 глючит у меня? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:47 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:49 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Вот истинный код: if ((IPCPort=False) or (IPAdr=False) or (Pusk=False)) then begin Preryvanie:=True; ToolButton5Click(Nil); StatusBar1.Panels[0].Text:='Прервана связь или отключен контроллер!'; end else if ({(Preryvanie=True) and} (IPCPort=True) and (IPAdr=True)) then begin if (Preryvanie=True) then begin ToolButton3Click(Nil); Preryvanie:=False; end else if (Timer1.Enabled=False) then Timer1.Enabled:=True; end; Мне пришлось закомментировать условие с Preryvanie и прописать его ниже, тогда всё пошло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:52 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Я понимаю, то что у меня произошло - смахивает на нонсенс. И такого странного результата в своих программах я не получал никогда. Всё, что разумно, работало всегда. А тут странность выскочила. Прошу прощения за то, что оторвал вас от дел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:57 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
удалено ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 11:58 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
В чём странность ? В том что вы не понимаете как работает ваш код ? Да, это действительно странно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 12:18 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Добавьте в начало и наблюдайте, какие значение имеют ваши флаги Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 12:32 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Ничё вы демагогию развели тут Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. З.ы я никогда не делаю прямых проверок на = false и = true я использую только not в случае проверки на false. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 15:36 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, тем не менее, в ваш код вкралась ошибка. Сами найдете, или помочь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 16:32 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Sergi if (((a=true) and (b=true)) and (c=true)) Сравнению глобальной булевой переменной с True соответствует следующий код: Код: pascal 1. 2. 3. Байт в памяти, занимаемый переменной, сравнивается с $01, инструкция условного перехода jnz. А что, если там ненулевое (мусорное) значение, не равное $01? Условие не выполнится. А вот какой код соответствует проверке (не сравнения) булевой переменной на True: Код: pascal 1. 2. 3. В данном случае сравнение идет с $00, инструкция условного перехода jz. Если в переменной ненулевое значение, не равное $01, то условие выполнится. Если условие if (((a=true) and (b=true)) and (c=true)) заменить на if (((a) and (b)) and (c)) что-нибудь изменится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 16:35 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Всех с пятничными тремя условиями соснами! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 16:45 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Polesov, А продвинутые языки давно на (isTrue) и (isTrue == true) используют единственную инструкцию test с je И всё что (!isTrue) и (isTrue == false) используется test и jne А cmp не трогается даже в случае (num == 0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 17:21 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный А продвинутые языки давно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 18:36 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Polesov, Это я про gcc и clang, в прочем delphi никогда не добиться и 10% от того, что могут те компиляторы. Я уже не говорю про оптимизацию кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2020, 18:43 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Polesov Сравнению глобальной булевой переменной с True соответствует следующий код: Код: pascal 1. 2. 3. Байт в памяти, занимаемый переменной, сравнивается с $01, инструкция условного перехода jnz. А что, если там ненулевое (мусорное) значение, не равное $01? Условие не выполнится. А сишников с первого класса учат, что сравнивать с true нельзя, и даже объясняют, почему. :) ... Пожалуй, что булевский тип - зло. Никакой пользы от него, кроме вреда. И тем, кто сравнивает с true/false, и тем, кто на это смотрит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 00:15 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Да, всё дело оказалось в булевских переменных. Заменил и всё пошло. Очень хорошо пояснили суть проблемы. Не будем впредь надеяться на описание переменных булевского типа. Спасибо всем за объяснение проблемы. Вопрос решён. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 09:21 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
При чём сбой шёл только в случае условия - true и никогда с условием - false ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 09:37 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Sergi Заменил и всё пошло Можно узнать, что именно ты сделал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 09:42 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
ъъъъъ Sergi Заменил и всё пошло Можно узнать, что именно ты сделал? Работает и когда убрал сравнения с true и false в условиях, ну и естественно, когда ушел от булевских переменных к integer, проверяю на = (0 или 1). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 10:34 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
продолжение следует ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 10:38 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Sergi ъъъъъ пропущено... Можно узнать, что именно ты сделал? Работает и когда убрал сравнения с true и false в условиях, ну и естественно, когда ушел от булевских переменных к integer, проверяю на = (0 или 1). То есть, теперь ждем сравнения неинициализированного целого с единицей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 11:33 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Sergi, а почему не сравнивать с равно/не равно 0? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 12:44 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
почему бы не начать искать ошибку у себя, а не у компилятора )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 13:24 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov продолжение следует Погоди, ТС еще до extended не добрался - вот тогда уже начнется.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 13:41 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov почему бы не начать искать ошибку у себя, а не у компилятора )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 13:50 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Сошлите его в деморган, учить ООП. Если используются классы, глобальные переменные нельзя использовать. И ошибок не будет таких. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 16:42 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный Сошлите его в деморган, учить ООП. Если используются классы, глобальные переменные нельзя использовать. И ошибок не будет таких. Классы + глобали под запретом уже? Это с какого перепугу-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 19:04 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
ъъъъъ А сишников с первого класса учат, что сравнивать с true нельзя Действительно, при проверке булевой переменной Код: pascal 1. 2. всегда производится сравнение с $00, в отличие от... Но если уж очень хочется сравнивать с True, то вместо конструкции Код: pascal 1. 2. 3. всегда лучше сравнивать с False Код: pascal 1. 2. 3. Впрочем, все же лучше выявить причину, почему в булевой переменной не 0 и не 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 22:25 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Sergi Да, всё дело оказалось в булевских переменных. Причина оказалось в том, что в какой-то булевой переменной содержится не 0 и не 1? Тогда замена boolean на integer - по сути, шило на мыло. Лучше найти причину, почему значение булевой переменной не 0 и не 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 22:29 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Polesov Лучше найти причину, почему значение булевой переменной не 0 и не 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 22:31 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
rgreat Polesov Лучше найти причину, почему значение булевой переменной не 0 и не 1. Вроде бы речь шла о глобальных переменных, а они инициализируются. Гораздо хуже, если где-нибудь ошибочное явное приведение типа. В этом случае даже переименование переменных может не помочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 23:01 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Polesov Вроде бы речь шла о глобальных переменных, а они инициализируются. Как мы недавно обнаружили в старых версиях дельфи - не всегда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2020, 23:08 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
DarkMaster Классы + глобали под запретом уже? Это с какого перепугу-то? С того момента, когда начинают глобальные переменные не по назначению использовать. Вся логика кладётся на какие - то глобальные переменные, а не переменные - созданного экземпляра класса. Что нарушает логику и создаёт дыры в программе. Зачем тогда вообще использовать в таком случае, объектно-ориентированное программирование [quot Polesov#22122849]всегда производится сравнение с $00, в отличие от...[/src] Да какая разница что с чем сравнивается ? Я уже давно написал, что можно сравнивать с чем угодно. Но это похоже на баг в компиляторе , ибо тут в любом случае должна быть проверка посредством команды в случае true = (test с je) \ false = (test и jne) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2020, 00:25 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2020, 00:43 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2020, 01:05 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный Но это похоже на баг в компиляторе ВсеРазумныйв любом случае должна быть проверка посредством команды в случае true = (test с je) \ false = (test и jne) Согласен с тем, что test оптимальнее cmp, но логика от этого не меняется. Или что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2020, 01:13 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Polesov, Ещё как вариант, лень программистов. Boolean не может иметь не 1 и не 0. По этому всегда компиляторы генерят test X, X А тут Delphi программисты решили схитрить, и приравнять к байту. А возможно и баг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2020, 01:20 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
У кого есть лазарус, могут проверить как там с этим делом обстоит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2020, 01:20 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Polesov ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2020, 01:26 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный ... С того момента, когда начинают глобальные переменные не по назначению использовать. Вся логика кладётся на какие - то глобальные переменные, а не переменные - созданного экземпляра класса. Что нарушает логику и создаёт дыры в программе. Зачем тогда вообще использовать в таком случае, объектно-ориентированное программирование ... Памас, ты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2020, 01:27 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный Polesov, Ещё как вариант, лень программистов Скорее уж, формальный подход. Проверяем логическое значение - сравниваем с нулем (через test или cmp - не суть) Сравниваем с True или False - сравниваем с 1 или 0 соответственно. Как по мне, так это правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2020, 01:31 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
rgreat Polesov На мой взгляд, переменные, объявленные в теле dpr - особый вид глобальных переменных. Можно их, конечно, передать куда-либо по указателю, но какова целесообразность этого? Впрочем, на практике может быть все, что угодно ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2020, 01:36 |
|
||
|
Почему конструкция - if ((a=true) and (b=true) and (c=true)) с тремя and не работает?
|
|||
|---|---|---|---|
|
#18+
Polesov, Ну как сказать, 36 строк генерирует данный код Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. Без комментариев Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. Аналогичный код на Сях под клангом 10 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 23 строчки Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Ну видно Delphi что - то известнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2020, 02:10 |
|
||
|
|

start [/forum/search_topic.php?author=Canis+Major&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
111ms |
get tp. blocked users: |
2ms |
| others: | 667ms |
| total: | 906ms |

| 0 / 0 |
