Basic Pascal Tutorial/Chapter 3/Boolean Expressions/bg

From Lazarus wiki
Jump to navigationJump to search

български (bg) English (en) français (fr) 日本語 (ja) 中文(中国大陆) (zh_CN)

 ◄   ▲   ► 

Булеви изрази

(author: Tao Yue, state: unchanged)

Boolean изразите се използват за сравнение на две стойности и като резултат се получава истина TRUE или лъжа FALSE:

value1 оператор_за_сравнение value2

Използват се следните оператори за сравнение:

<	по-малко от
>	по-голямо от
=	равно на
<=	по-малко или равно на
>=	по-голямо или равно на
<>	различно от

Можете да присвоявате булеви изрази на булеви променливи. Тук присвояваме израз true на some_bool:

 some_bool := 3 < 5;

Сложните булеви изрази се формират с помощта на булевите оператори:

not	отрицание (~)
and	конюкция, логическо умножение (^)
or	дизюнкция, логическо събиране (v)
xor	изключващо или

NOT е унарен оператор - той се прилага само към една стойност и я инвертира:

  • not true = false
  • not false = true

AND връща TRUE само ако и двете стойности са TRUE:

  • TRUE and FALSE = FALSE
  • TRUE and TRUE = TRUE

OR връща TRUE ако поне едната стойност е TRUE:

  • TRUE or TRUE = TRUE
  • TRUE or FALSE = TRUE
  • FALSE or TRUE = TRUE
  • FALSE or FALSE = FALSE

XOR връща TRUE ако едната стойност е TRUE а другата е FALSE. По този начин:

  • TRUE xor TRUE = FALSE
  • TRUE xor FALSE = TRUE
  • FALSE xor TRUE = TRUE
  • FALSE xor FALSE = FALSE

Когато комбинирате два булеви израза, използвайки сравнения и булеви оператори, бъдете внимателни и използвайте скоби:

(3>5) or (650<1)

Това се прави защото булевите оператори имат по-висок приоритет от операторите за сравнение:

Приоритет Оператор Забележка
1 not най-висок приоритет
2 * / div mod and
3 + - or
4 < > <= >= = <> най-нисък приоритет

Следователно 3 > 5 or 650 < 1 ще се изпълни като 3 > (5 or 650) < 1, което е безмислено, защото булевия оператор or работи само с Boolean стойности а не с цели числа.

Булевите оператори (AND, OR, NOT, XOR) може да се ипозват с Boolean променливи по същия начин, както се използват и с булеви изрази.

Когато е възможно, не сравнявайте две реални стойности със знак за равенство. Малките грешки при закръгляването и при представянето на реалните числа могат да доведат до разлика в два иначе математически еквивалентни изрази.

 ◄   ▲   ►