Sign in Join
Wiki copytemporary

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

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

OldNewLine
11[[Basic Pascal Tutorial/fr|Tutoriel de Pascal Objet]] : Structures de contrôle / **Expressions booléennes**
22
3-Les expressions [[Boolean/fr|booléennes]] sont utilisées pour comparer deux valeurs et retournent `true` ou `false` :
4-```
5-valeur1 **opérateur_relationnel** valeur2
6-```
3+Les expressions [[Boolean/fr|booléennes]] sont utilisées pour comparer deux valeurs et retournent `true` ou `false` :
74
8-Les opérateurs relationnels suivants sont utilisés :
9-```
10-< inférieur à
11- > supérieur à
12- = égal à
13- <= inférieur ou égal à
14- >= supérieur ou égal à
15- <> différent de
16-```
5+`valeur1 `**`opérateur_relationnel`**` valeur2`
176
18-Les expressions booléennes sont affectables à des variables booléennes. Ici, nous affectons une expression valant `true` à _some_bool_ :
19-```
7+Les opérateurs relationnels suivants sont utilisés :
8+
9+`<  inférieur à`\
10+`>  supérieur à`\
11+`=  égal à`\
12+`<= inférieur ou égal à`\
13+`>= supérieur ou égal à`\
14+`<> différent de`
15+
16+Les expressions booléennes sont affectables à des variables booléennes. Ici, nous affectons une expression valant `true` à *some_bool* :
17+
18+``` pascal
2019some_bool := 3 < 5;
2120```
2221
23-Des expressions booléennes plus complexes sont formées avec les opérateurs booléens :
24-```
25-not négation (~)
26- and conjonction (^)
27- or disjonction (v)
28- xor ou exclusif ((+))
29-```
22+Des expressions booléennes plus complexes sont formées avec les opérateurs booléens :
3023
31-`NOT` est un opérateur unaire ; il est appliqué à une seule valeur et inverse sa valeur :
24+`not    négation (~)`\
25+`and    conjonction (^)`\
26+`or disjonction (v)`\
27+`xor    ou exclusif ((+))`
3228
33- * `not true = false`
34- * `not false = true`
29+`NOT` est un opérateur unaire ; il est appliqué à une seule valeur et inverse sa valeur :
3530
36-`AND` retourne `TRUE` uniquement si les deux valeurs sont `TRUE` simultanément :
31+- `not true = false`
32+- `not false = true`
3733
38- * `TRUE and FALSE = FALSE`
39- * `TRUE and TRUE = TRUE`
34+`AND` retourne `TRUE` uniquement si les deux valeurs sont `TRUE` simultanément :
4035
41-`OR` retourne `TRUE` si au moins l'une des valeurs est `TRUE` :
36+- `TRUE and FALSE = FALSE`
37+- `TRUE and TRUE = TRUE`
4238
43- * `TRUE or TRUE = TRUE`
44- * `TRUE or FALSE = TRUE`
45- * `FALSE or TRUE = TRUE`
46- * `FALSE or FALSE = FALSE`
39+`OR` retourne `TRUE` si au moins l'une des valeurs est `TRUE` :
4740
48-`XOR` retourne `TRUE` si les deux valeurs sont différentes. Ainsi :
41+- `TRUE or TRUE = TRUE`
42+- `TRUE or FALSE = TRUE`
43+- `FALSE or TRUE = TRUE`
44+- `FALSE or FALSE = FALSE`
4945
50- * `TRUE xor TRUE = FALSE`
51- * `TRUE xor FALSE = TRUE`
52- * `FALSE xor TRUE = TRUE`
53- * `FALSE xor FALSE = FALSE`
46+`XOR` retourne `TRUE` si les deux valeurs sont différentes. Ainsi :
5447
55-C'est l'inverse de l'opérateur d'égalité `=` ; on peut donc le remplacer par l'opérateur `<>` appliqué aux valeurs booléennes.
48+- `TRUE xor TRUE = FALSE`
49+- `TRUE xor FALSE = TRUE`
50+- `FALSE xor TRUE = TRUE`
51+- `FALSE xor FALSE = FALSE`
5652
57-En combinant deux expressions booléennes en utilisant les opérateurs relationnels et booléens, l'emploi de parenthèses est nécessaires :
58-```
53+C'est l'inverse de l'opérateur d'égalité `=` ; on peut donc le remplacer par l'opérateur `<>` appliqué aux valeurs booléennes.
54+
55+En combinant deux expressions booléennes en utilisant les opérateurs relationnels et booléens, l'emploi de parenthèses est nécessaires :
56+
57+``` pascal
5958(3 > 5) or (650 < 1)
6059```
6160
62-car les opérateurs booléens ont une priorité d'évaluation plus élevée que les opérateurs relationnels :
61+car les opérateurs booléens ont une priorité d'évaluation plus élevée que les opérateurs relationnels :
6362
64- 1. `not`
65- 2. `* / div mod and`
66- 3. `+ - or`
67- 4. `< > <= >= = <>`
63+1. `not`
64+2. `* / div mod and`
65+3. `+ - or`
66+4. `< > <= >= = <>`
6867
69-Ainsi, `3 > 5 or 650 < 1` est évalué en `3 > (5 or 650) < 1`, ce qui n'a pas de sens en tant qu'expression booléenne (`OR` est un opérateur agissant aussi sur les entiers mais avec un autre sens).
68+Ainsi, `3 > 5 or 650 < 1` est évalué en `3 > (5 or 650) < 1`, ce qui n'a pas de sens en tant qu'expression booléenne (`OR` est un opérateur agissant aussi sur les entiers mais avec un autre sens).
7069
71-Les opérateurs booléens (`AND, OR, NOT, XOR`) peuvent être employés aussi bien sur des expressions booléennes que sur des valeurs booléennes.
70+Les opérateurs booléens (`AND, OR, NOT, XOR`) peuvent être employés aussi bien sur des expressions booléennes que sur des valeurs booléennes.
7271
73-Quelques remarques :
72+Quelques remarques :
7473
75- * Bien que ces opérateurs soient commutatifs (on peut changer la place les opérandes des opérateurs), une optimisation fréquente des compilateurs, dite évaluation paresseuse, consiste à n'évaluer que le premier opérande et le second au besoin du fait des propriétés des opérateurs booléens. Cela n'a habituellement aucune conséquence sauf pour des constructions particulières, prudence donc…
74+- Bien que ces opérateurs soient commutatifs (on peut changer la place les opérandes des opérateurs), une optimisation fréquente des compilateurs, dite évaluation paresseuse, consiste à n'évaluer que le premier opérande et le second au besoin du fait des propriétés des opérateurs booléens. Cela n'a habituellement aucune conséquence sauf pour des constructions particulières, prudence donc…
7675
77- * Autant que possible, ne jamais comparer directement deux valeurs réelles, de légères différences d'arrondi peuvent fausser le résultat de l'expression. En fait, il vaut mieux comparer la différence à une valeur suffisamment petite.
76+- Autant que possible, ne jamais comparer directement deux valeurs réelles, de légères différences d'arrondi peuvent fausser le résultat de l'expression. En fait, il vaut mieux comparer la différence à une valeur suffisamment petite.
7877
79- * Dans la mesure du possible, éviter des expressions du genre :
78+- Dans la mesure du possible, éviter des expressions du genre :
8079
81-```
82-if some_bool = True then
83-```
80+`if some_bool = True then`
8481
85-alors que :
86-```
87-if some_bool then
88-```
82+alors que :
8983
90-suffit largement et allège la lecture.
84+`if some_bool then`
9185
92-[[Basic Pascal Tutorial/Chapter 3/Sequential control/fr|←]] | [[Basic Pascal Tutorial/Contents/fr|Sommaire]] | [[Basic Pascal Tutorial/Chapter 3/IF/fr|→]]
93----|---|---
86+suffit largement et allège la lecture.
9487
9588---
96-*From the Free Pascal wiki, page "Basic Pascal Tutorial/Chapter 3/Boolean Expressions/fr", as the Internet Archive kept it on 2022-09-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).*
89+*From the Free Pascal wiki, page "Basic Pascal Tutorial/Chapter 3/Boolean Expressions/fr", 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