Sign in Join
Wiki copytemporary

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

Revision 1 to 2. 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-
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`
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+```
157
16-Les expressions booléennes sont affectables à des variables booléennes. Ici, nous affectons une expression valant `true` à *some_bool* :
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+```
1717
18-``` pascal
18+Les expressions booléennes sont affectables à des variables booléennes. Ici, nous affectons une expression valant `true` à _some_bool_ :
19+```
1920some_bool := 3 < 5;
2021```
2122
22-Des expressions booléennes plus complexes sont formées avec les opérateurs booléens :
23-
24-`not    négation (~)`\
25-`and    conjonction (^)`\
26-`or disjonction (v)`\
27-`xor    ou exclusif ((+))`
28-
29-`NOT` est un opérateur unaire ; il est appliqué à une seule valeur et inverse sa valeur :
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+```
3030
31-- `not true = false`
32-- `not false = true`
31+`NOT` est un opérateur unaire ; il est appliqué à une seule valeur et inverse sa valeur :
3332
34-`AND` retourne `TRUE` uniquement si les deux valeurs sont `TRUE` simultanément :
33+ * `not true = false`
34+ * `not false = true`
3535
36-- `TRUE and FALSE = FALSE`
37-- `TRUE and TRUE = TRUE`
36+`AND` retourne `TRUE` uniquement si les deux valeurs sont `TRUE` simultanément :
3837
39-`OR` retourne `TRUE` si au moins l'une des valeurs est `TRUE` :
38+ * `TRUE and FALSE = FALSE`
39+ * `TRUE and TRUE = TRUE`
4040
41-- `TRUE or TRUE = TRUE`
42-- `TRUE or FALSE = TRUE`
43-- `FALSE or TRUE = TRUE`
44-- `FALSE or FALSE = FALSE`
41+`OR` retourne `TRUE` si au moins l'une des valeurs est `TRUE` :
4542
46-`XOR` retourne `TRUE` si les deux valeurs sont différentes. Ainsi :
43+ * `TRUE or TRUE = TRUE`
44+ * `TRUE or FALSE = TRUE`
45+ * `FALSE or TRUE = TRUE`
46+ * `FALSE or FALSE = FALSE`
4747
48-- `TRUE xor TRUE = FALSE`
49-- `TRUE xor FALSE = TRUE`
50-- `FALSE xor TRUE = TRUE`
51-- `FALSE xor FALSE = FALSE`
48+`XOR` retourne `TRUE` si les deux valeurs sont différentes. Ainsi :
5249
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.
50+ * `TRUE xor TRUE = FALSE`
51+ * `TRUE xor FALSE = TRUE`
52+ * `FALSE xor TRUE = TRUE`
53+ * `FALSE xor FALSE = FALSE`
5454
55-En combinant deux expressions booléennes en utilisant les opérateurs relationnels et booléens, l'emploi de parenthèses est nécessaires :
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.
5656
57-``` pascal
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+```
5859(3 > 5) or (650 < 1)
5960```
6061
61-car les opérateurs booléens ont une priorité d'évaluation plus élevée que les opérateurs relationnels :
62+car les opérateurs booléens ont une priorité d'évaluation plus élevée que les opérateurs relationnels :
6263
63-1. `not`
64-2. `* / div mod and`
65-3. `+ - or`
66-4. `< > <= >= = <>`
64+ 1. `not`
65+ 2. `* / div mod and`
66+ 3. `+ - or`
67+ 4. `< > <= >= = <>`
6768
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).
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).
6970
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.
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.
7172
72-Quelques remarques :
73+Quelques remarques :
7374
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…
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…
7576
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.
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.
7778
78-- Dans la mesure du possible, éviter des expressions du genre :
79+ * Dans la mesure du possible, éviter des expressions du genre :
7980
80-`if some_bool = True then`
81+```
82+if some_bool = True then
83+```
8184
82-alors que :
85+alors que :
86+```
87+if some_bool then
88+```
8389
84-`if some_bool then`
90+suffit largement et allège la lecture.
8591
86-suffit largement et allège la lecture.
92+[[Basic Pascal Tutorial/Chapter 3/Sequential control/fr|←]] | [[Basic Pascal Tutorial/Contents/fr|Sommaire]] | [[Basic Pascal Tutorial/Chapter 3/IF/fr|→]]
93+---|---|---
8794
8895---
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).*
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).*

Back to history