Sign in Join
Wiki copytemporary

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

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

Title: Basic Pascal Tutorial/Chapter 3/Boolean Expressions/bg

OldNewLine
1+## Булеви изрази
2+
3+*(author: Tao Yue, state: unchanged)*
4+
5+[[Boolean]] изразите се използват за сравнение на две стойности и като резултат се получава истина `TRUE` или лъжа `FALSE`:
6+
7+`value1 `**`оператор_за_сравнение`**` value2`
8+
9+Използват се следните оператори за сравнение:
10+
11+`<  по-малко от`\
12+`>  по-голямо от`\
13+`=  равно на`\
14+`<= по-малко или равно на`\
15+`>= по-голямо или равно на`\
16+`<> различно от`
17+
18+Можете да присвоявате булеви изрази на булеви променливи. Тук присвояваме израз `true` на some_bool:
19+
20+``` pascal
21+ some_bool := 3 < 5;
22+```
23+
24+Сложните булеви изрази се формират с помощта на булевите оператори:
25+
26+`not    отрицание (~)`\
27+`and    конюкция, логическо умножение (^)`\
28+`or дизюнкция, логическо събиране (v)`\
29+`xor    изключващо или`
30+
31+`NOT` е унарен оператор - той се прилага само към една стойност и я инвертира:
32+
33+- <tt>not true = false
34+- not false = true</tt>
35+
36+`AND` връща `TRUE` само ако и двете стойности са `TRUE`:
37+
38+- <tt>TRUE and FALSE = FALSE
39+- TRUE and TRUE = TRUE</tt>
40+
41+`OR` връща `TRUE` ако поне едната стойност е `TRUE`:
42+
43+- <tt>TRUE or TRUE = TRUE
44+- TRUE or FALSE = TRUE
45+- FALSE or TRUE = TRUE
46+- FALSE or FALSE = FALSE</tt>
47+
48+`XOR` връща `TRUE` ако едната стойност е `TRUE` а другата е `FALSE`. По този начин:
49+
50+- <tt>TRUE xor TRUE = FALSE
51+- TRUE xor FALSE = TRUE
52+- FALSE xor TRUE = TRUE
53+- FALSE xor FALSE = FALSE</tt>
54+
55+Когато комбинирате два булеви израза, използвайки сравнения и булеви оператори, бъдете внимателни и използвайте скоби:
56+
57+``` pascal
58+(3>5) or (650<1)
59+```
60+
61+Това се прави защото булевите оператори имат по-висок приоритет от операторите за сравнение:
62+
63+| Приоритет | Оператор | Забележка |
64+|-----------|-------------------|-----------------------|
65+| 1 | `not` | *най-висок приоритет* |
66+| 2 | `* / div mod and` | |
67+| 3 | `+ - or` | |
68+| 4 | `< > <= >= = <>` | *най-нисък приоритет* |
69+
70+Следователно `3 > 5 or 650 < 1` ще се изпълни като `3 > (5 or 650) < 1`, което е безмислено, защото булевия оператор **or** работи само с Boolean стойности а не с цели числа.
71+
72+Булевите оператори (`AND, OR, NOT, XOR`) може да се ипозват с Boolean променливи по същия начин, както се използват и с булеви изрази.
73+
74+Когато е възможно, не сравнявайте две реални стойности със знак за равенство. Малките грешки при закръгляването и при представянето на реалните числа могат да доведат до разлика в два иначе математически еквивалентни изрази.
75+
76+---
77+*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