Sign in Join
Wiki copytemporary

Basic Pascal Tutorial/Chapter 3/Boolean Expressions/bg: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## Булеви изрази
22
33*(author: Tao Yue, state: unchanged)*
44
55[[Boolean]] изразите се използват за сравнение на две стойности и като резултат се получава истина `TRUE` или лъжа `FALSE`:
66
77`value1 `**`оператор_за_сравнение`**` value2`
88
99Използват се следните оператори за сравнение:
1010
1111`<  по-малко от`\
1212`>  по-голямо от`\
1313`=  равно на`\
1414`<= по-малко или равно на`\
1515`>= по-голямо или равно на`\
1616`<> различно от`
1717
1818Можете да присвоявате булеви изрази на булеви променливи. Тук присвояваме израз `true` на some_bool:
1919
2020``` pascal
2121 some_bool := 3 < 5;
2222```
2323
2424Сложните булеви изрази се формират с помощта на булевите оператори:
2525
2626`not    отрицание (~)`\
2727`and    конюкция, логическо умножение (^)`\
2828`or дизюнкция, логическо събиране (v)`\
2929`xor    изключващо или`
3030
3131`NOT` е унарен оператор - той се прилага само към една стойност и я инвертира:
3232
33-- <tt>not true = false
34-- not false = true</tt>
33+- not true = false
34+- not false = true
3535
3636`AND` връща `TRUE` само ако и двете стойности са `TRUE`:
3737
38-- <tt>TRUE and FALSE = FALSE
39-- TRUE and TRUE = TRUE</tt>
38+- TRUE and FALSE = FALSE
39+- TRUE and TRUE = TRUE
4040
4141`OR` връща `TRUE` ако поне едната стойност е `TRUE`:
4242
43-- <tt>TRUE or TRUE = TRUE
43+- TRUE or TRUE = TRUE
4444- TRUE or FALSE = TRUE
4545- FALSE or TRUE = TRUE
46-- FALSE or FALSE = FALSE</tt>
46+- FALSE or FALSE = FALSE
4747
4848`XOR` връща `TRUE` ако едната стойност е `TRUE` а другата е `FALSE`. По този начин:
4949
50-- <tt>TRUE xor TRUE = FALSE
50+- TRUE xor TRUE = FALSE
5151- TRUE xor FALSE = TRUE
5252- FALSE xor TRUE = TRUE
53-- FALSE xor FALSE = FALSE</tt>
53+- FALSE xor FALSE = FALSE
5454
5555Когато комбинирате два булеви израза, използвайки сравнения и булеви оператори, бъдете внимателни и използвайте скоби:
5656
5757``` pascal
5858(3>5) or (650<1)
5959```
6060
6161Това се прави защото булевите оператори имат по-висок приоритет от операторите за сравнение:
6262
6363| Приоритет | Оператор | Забележка |
6464|-----------|-------------------|-----------------------|
6565| 1 | `not` | *най-висок приоритет* |
6666| 2 | `* / div mod and` | |
6767| 3 | `+ - or` | |
6868| 4 | `< > <= >= = <>` | *най-нисък приоритет* |
6969
7070Следователно `3 > 5 or 650 < 1` ще се изпълни като `3 > (5 or 650) < 1`, което е безмислено, защото булевия оператор **or** работи само с Boolean стойности а не с цели числа.
7171
7272Булевите оператори (`AND, OR, NOT, XOR`) може да се ипозват с Boolean променливи по същия начин, както се използват и с булеви изрази.
7373
7474Когато е възможно, не сравнявайте две реални стойности със знак за равенство. Малките грешки при закръгляването и при представянето на реалните числа могат да доведат до разлика в два иначе математически еквивалентни изрази.
7575
7676---
7777*From the Free Pascal wiki, page "Basic Pascal Tutorial/Chapter 3/Boolean Expressions/bg", as it stood on 2022-08-20 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history