|
|
|
|
PRATIQUE ALGO/METHODES |
|
|
|
Rendre les expressions booléennes plus lisibles |
|
La méthode : adapter les théories des circuits électriques aux tests booléens afin d'en simplifier l'apparence.
(07/11/2005) |
|
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Les tests booléens, comme ceux qui utilisent un bloc if-else,
sont parmi les plus utilisés dans les codes sources : un programme
n'a de cesse de tester si une valeur est vraie ou fausse, et
d'agir en conséquence.
Il peut cependant arriver que les tests booléens se combinent,
aboutissant au même résultat que lors d'un dialogue réel : à
force de combiner des expressions négatives et positives entre
elles, il peut arriver que le développeur ne sache plus reconnaître
les unes des autres.
Une idée
provenant des théories électriques est de sortir le négatif
d'un test, pour aboutir des expressions logiquement équivalentes,
mais dans la plupart des cas plus lisibles.
Par exemple, le test suivant :
if ( !jaiFaim || !jaiSoif ) { action
}
peut être simplifié en...
if ( !( jaiFaim && jaiSoif ) ) { action
}
Les théorèmes de DeMorgan présente ainsi plusieurs équivalences,
qui peuvent aider un développeur à se se dépêtrer d'expressions
trop compliquées ...
Transformation
d'expressions logiques
|
Originale
|
Transformation
|
non
A et non B
|
non
(A ou B)
|
non
A et B
|
non
(A ou non B)
|
A
et non B
|
non
(non A ou B)
|
A
et B
|
non
(non A ou non B)
|
non
A ou non B
|
non
(A et B)
|
non
A ou B
|
non
(A et non B)
|
A
ou non B
|
non
(non A et B)
|
A
ou B
|
non
(non A et non B)
|
|
|
|
|
|
|