270 likes | 647 Views
Algèbre de Boole et les Boucles. Opérateurs logiques: p3 Fonction « ET » (AND) Fonction « OU » (OR) Fonction « NON » (NOT ) Fonction « NON – ET » (NAND) Fonction « NON – OU » (NOR) Fonction « OU exclusif » (XOR) Fonction « NON – OU exclusif » (XNOR). Sommaire. Propriétés : p8
E N D
Algèbre de Boole et les Boucles Opérateurs logiques: p3 • Fonction « ET » (AND) • Fonction « OU » (OR) • Fonction « NON » (NOT) • Fonction « NON – ET » (NAND) • Fonction « NON – OU » (NOR) • Fonction « OU exclusif » (XOR) • Fonction « NON – OU exclusif » (XNOR) Sommaire • Propriétés: p8 • Associativité • Commutativité • Distributivité • Idempotence • Eléments neutres • Absorption • Simplification • Redondance • Complémentarité • Schémas logiques • Les boucles: p13 • De Boole aux Boucles • Si Alors Sinon • Tant que • Pour • Exemples en Php • Exemples en Basic
Introduction L'algèbre de Boole, ou calcul booléen, est la partie des mathématiques, de la logique et de l'électronique qui s'intéresse aux opérations et aux fonctions sur les variables logiques. Plus spécifiquement, l'algèbre booléenne permet d'utiliser des techniques algébriques pour traiter les expressions à deux valeurs du calcul des propositions. Dans l’algèbre de Boole, chaque variable ne peut avoir que deux valeurs: 0 si elle est fausse, et 1 si elle est vrai. Ce qui peut se traduire dans le domaine électronique par 0 = absence de courant, 1 = présence de courant. C’est le code binaire ( base 2 ). On appellefonction logiqueune entité acceptant plusieurs valeurs logiques en entrée et dont la sortie (il peut y en avoir plusieurs) peut avoir deux états possibles : 0 ou 1. Une boucle est une fonction logique qui répète une ou plusieurs instructions, sous certaines conditions. Grâce aux propriétés de l’Algèbre de Boole, la simplification ( et donc l’allègement) des fonctions logiques devient possible. Elle fut initiée en 1854 par le mathématicien britannique George Boole.
Opérateur logique « ET » (AND) A B A.B Il est défini de la manière suivante : A ET B est VRAI si et seulement si Aest VRAI et B est VRAI. Il est représenté par le symbole « . ».
Opérateur logique « OU » (OR) A B A+B Il est défini de la manière suivante : A OU B est VRAI si et seulement si A est VRAI ou B est VRAI. (En particulier, si A est vrai et que B est vrai aussi, alors A OU B est vrai.) Il est représenté par le symbole « + ».
Opérateur logique « NON » (NOT) A A Le contraire de A est VRAI si et seulement si A est FAUX. Il est représenté par une barre au dessus de la ou des variables concernées. Si A = 0, alors NON A = 1 Si A = 1, alors NON A = 0
Fonctions logiques composées « NON-OU » (NOR) La fonction NOR est l'enchainement de la fonction OU et de la fonction NON. « NON-ET » (NAND) La fonction NAND est l’enchainement de la fonction ET et de la fonction NON. A B A B A+B A.B
Fonctions logiques composées « NON-OU » exclusif (XNOR) La sortie est VRAI si et seulement si les deux entrées sont identiques. On peut donc noter qu'il s'agit de la négation du OU exclusif souvent noté XNOR. On le nomme parfois (bien qu'abusivement) identité. « OU exclusif » (XOR) Il correspond à l'intersection de deux conditions, privée de la réunion de ces deux conditions. Il est représenté par le symbole « ⊕ ». A B A B A⊕B A⊕B
Propriétés des opérateurs Associativité : Comme avec les opérations habituelles, certaines parenthèses sont inutiles: ( A + B ) + C = A + ( B + C ) = A + B + C ( A . B ) . C = A . ( B . C ) = A . B . CCommutativité : L'ordre est sans importance: A + B = B + A A . B = B . ADistributivité : Comme avec les opérations habituelles, il est possible de distribuer : A . ( B + C ) = A . B + A . C Attention : comportement différent par rapport aux opérateurs + et . habituels : A + ( B . C ) = ( A + B) . ( A + C )
Simplification A +Ā . B = A + B A . (Ā + B ) = A . B • Redondance A . B + Ā . C = A . B + Ā . C + B . C • Complémentarité A = Ā A + Ā = 1 A . Ā = 0 • Idempotence A + A + A + A +[…]+ A = A A . A . A . A . […]. A = A • Éléments neutres A + 0 = A A . 1 = A • Absorption O . A = 0 1 + A = 1
Exemple de schémas logiques : Représentation (Symboles américains) de : ( A + B ) . ( A + C ) = S Exemples de Symboles américains :
Représentation ( Symboles européens) de : S = A . B + C = A . B . C Représentation (Symboles européens) de S3 = S1 . S2 = A + B . C Représentation (Symboles européens) de : F = A . ( B + C ) + ( B . D )
Représentation (Symboles européens) de : A . (B + C) + (A . B) + (B . C) = S Exemple de Simplification : (je note /A pour A Barre) S = A . /B + A . C + /A . B + B . C S = ( A . /B + /A . B ) + ( A . C + B . C ) car : [A./B+/A.B=A⊕B] S = A ⊕B + ( A + B ) . C [A.C+B.C=(A+B).C] S = A ⊕ B + A . B . C
Boucle Tant-Que (While) Du Booléen aux boucles. La condition est évaluée. Si la condition est vraie, on exécute Action_Alors. Si la condition est fausse, on exécute Action_Sinon. Ce n’est pas véritablement une boucle, mais cette commande leur sert de base, & peut être utiliser pour créer une boucle. Boucle Si-Alors-Sinon (If-Then-Else) Tant que la condition est vraie, on exécute « actions ». Quand la condition est fausse, fin du « tant que ». Une boucle est une structure de contrôle destinée à exécuter une portion de code plusieurs fois de suite, la structure de contrôle branchant le pointeur ordinal au début du code tant qu'une condition de continuation est remplie ou, selon les boucles, qu'une condition de sortie n'est pas remplie. Normalement, une boucle s'exécute selon le cas, soit un nombre de fois connu à l'avance, soit jusqu'à ce qu'une condition permette de sortir de la boucle. Il arrive toutefois qu'une erreur de programmation fasse qu'un programme s'exécute indéfiniment à l'intérieur d'une boucle. On dit que le programme est en train de boucler. Fortran II a introduit les boucles en 1958.
Boucle Pour (For) Pour une variable (« id_variable ») allant de valeur inférieure (« val_inférieure »), à valeur supérieure (« val_supérieure »), on exécute actions jusqu’à ce que la variable soit supérieure à la valeur supérieure. « Val_pas » correspond à la valeur d’incrémentation, et vaut 1 par défaut, que l’on peut modifier.
Exemples de Boucles en PHP Une boucle est une structure qui permet de répéter les mêmes instructions plusieurs fois. Une boucle seule se répète à l’infini tant que la condition n’est pas vraie. • L’attribut « $ » permet de déclarer une variable. • La condition « While » permet de déclarer une boucle qui exécutera les instructions jusqu’à ce que les conditions soient remplies. <?php While($variable == true){ Instruction à exécuter dans la boucle } ?> int majeur = 1; if(majeur) { printf("Tu es majeur !"); } else { printf("Tu es mineur"); } Comme majeur vaut 1, la condition est vraie, donc on affiche « tu es majeur !». Ici, If(majeur) peut se traduire par « Si tu es majeur ». Si la condition n’était pas remplie, les instructions de la condition else seront exécutées. Ici, les conditions Majeur & Garcon doivent être remplies. if(majeur && garcon)
<?php $nombre_de_lignes= 1; while ($nombre_de_lignes<= 100) { echo'Je ne dois pas regarder les mouches voler quand j\'apprends le PHP.<br />'; $nombre_de_lignes++;// $nombre_de_lignes = $nombre_de_lignes + 1 } ?> Ici la boucle se répète tant que la variable $ nombre de lignes est inférieure ou égale à 100. La phrase se répètera donc 100 fois. <?php for($nombre_de_lignes=1;$nombre_de_lignes<= 100; $nombre_de_lignes++) { echo'Ceci est la ligne n°' .$nombre_de_lignes.'<br />'; } ?> La boucle for fait la même chose que la boucle while, mais rassemble sur une seule ligne tout ce qu’il faut savoir sur le fonctionnement de la boucle.
Ce programme nous demande un nombre (ligne 10), puis, selon sa valeur, affiche une des 2 lignes de texte (ligne 30 ou 40) après avoir comparé la valeur du nombre à 10 (ligne 20). Exemples de Boucles en langage BASIC • Boucle « IF » : 10 INPUT « Entrez un nombre : »;A 20 IF A>10 THEN GOTO 40 30 PRINT « Le nombre est inférieur ou égal à 10. »;END 40 PRINT « Le nombre est supérieur à 10. » • Boucle « WHILE » : DO INPUT "Combien d'étoiles voulez-vous"; NumStars Stars$ = "" Stars$ = REPEAT$("*", NumStars) PRINT Stars$ DO INPUT "Voulez-vous plus d'étoiles"; Answer$ LOOP UNTIL Answer$ <> "" LOOP WHILE UCASE$(LEFT$(Answer$, 1)) = "O" • Boucle « FOR » : 10 INPUT « Donnez un nombre : »;N 20 FOR I = 1 TO N 30 Print « Je compte »;I; ». » 40 NEXT I Ce programme nous demande un nombre d’étoiles à afficher, puis nous demande si on souhaite plus d’étoiles, & attend en boucle jusqu’à ce qu’on appuie sur une touche. Si la touche O est appuyée il recommencera au début, sinon il s’arrêtera. Ce programme nous demande un nombre, puis affichera la phrase « Je compte » suivie de nombres allant de 1 jusqu’au nombre indiqué. La commande NEXT sert à incrémenter le nombre I jusqu’à ce que I=N.