Sign in Join
Wiki copytemporary

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

Revision 3 to 4. 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
7-```
7+```text
88value1 оператор_за_сравнение value2
99```
1010
1111Използват се следните оператори за сравнение:
1212
13-```
13+```text
1414< по-малко от
1515> по-голямо от
1616= равно на
1717<= по-малко или равно на
1818>= по-голямо или равно на
1919<> различно от
2020```
2121
2222Можете да присвоявате булеви изрази на булеви променливи. Тук присвояваме израз `true` на some_bool:
2323
2424``` pascal
2525 some_bool := 3 < 5;
2626```
2727
2828Сложните булеви изрази се формират с помощта на булевите оператори:
2929
30-```
30+```text
3131not отрицание (~)
3232and конюкция, логическо умножение (^)
3333or дизюнкция, логическо събиране (v)
3434xor изключващо или
3535```
3636
3737`NOT` е унарен оператор - той се прилага само към една стойност и я инвертира:
3838
3939- not true = false
4040- not false = true
4141
4242`AND` връща `TRUE` само ако и двете стойности са `TRUE`:
4343
4444- TRUE and FALSE = FALSE
4545- TRUE and TRUE = TRUE
4646
4747`OR` връща `TRUE` ако поне едната стойност е `TRUE`:
4848
4949- TRUE or TRUE = TRUE
5050- TRUE or FALSE = TRUE
5151- FALSE or TRUE = TRUE
5252- FALSE or FALSE = FALSE
5353
5454`XOR` връща `TRUE` ако едната стойност е `TRUE` а другата е `FALSE`. По този начин:
5555
5656- TRUE xor TRUE = FALSE
5757- TRUE xor FALSE = TRUE
5858- FALSE xor TRUE = TRUE
5959- FALSE xor FALSE = FALSE
6060
6161Когато комбинирате два булеви израза, използвайки сравнения и булеви оператори, бъдете внимателни и използвайте скоби:
6262
6363``` pascal
6464(3>5) or (650<1)
6565```
6666
6767Това се прави защото булевите оператори имат по-висок приоритет от операторите за сравнение:
6868
6969| Приоритет | Оператор | Забележка |
7070|-----------|-------------------|-----------------------|
7171| 1 | `not` | *най-висок приоритет* |
7272| 2 | `* / div mod and` | |
7373| 3 | `+ - or` | |
7474| 4 | `< > <= >= = <>` | *най-нисък приоритет* |
7575
7676Следователно `3 > 5 or 650 < 1` ще се изпълни като `3 > (5 or 650) < 1`, което е безмислено, защото булевия оператор **or** работи само с Boolean стойности а не с цели числа.
7777
7878Булевите оператори (`AND, OR, NOT, XOR`) може да се ипозват с Boolean променливи по същия начин, както се използват и с булеви изрази.
7979
8080Когато е възможно, не сравнявайте две реални стойности със знак за равенство. Малките грешки при закръгляването и при представянето на реалните числа могат да доведат до разлика в два иначе математически еквивалентни изрази.
8181
8282---
8383*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