Connexion
Derniers sujets
Rechercher
Meilleurs posteurs
simo-hits | ||||
Admin | ||||
MasterCX | ||||
R ! F ! N ! 0 | ||||
xenon01 | ||||
youssef GI | ||||
hamza_s | ||||
A.T.J. | ||||
anas2704 | ||||
death note |
Statistiques
Nous avons 689 membres enregistrésL'utilisateur enregistré le plus récent est hicham1963
Nos membres ont posté un total de 1604 messages dans 359 sujets
Qui est en ligne ?
Il y a en tout 4 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 4 Invités Aucun
Le record du nombre d'utilisateurs en ligne est de 41 le Mar 16 Mar - 2:43
PARTIE 4 : ENCORE DE LA LOGIQUE
2 participants
Page 1 sur 1
PARTIE 4 : ENCORE DE LA LOGIQUE
Partie 4
Encore de la Logique
Encore de la Logique
« La programmation peut être un plaisir ; de même que la cryptographie. Toutefois, il faut éviter de combiner les deux. » - Kreitzberg et Sneidermann
1. Faut-il mettre un ET ? Faut-il mettre un OU ?
Une remarque pour commencer : dans le cas de conditions composées, les parenthèses jouent un rôle fondamental.
Variables A, B, C, D, E en Booléen
Variable X en Entier
Début
Lire X
A ← X > 12
B ← X > 2
C ← X < 6
D ← (A ET B) OU C
E ← A ET (B OU C)
Ecrire D, E
Fin
Si X = 3, alors on remarque que D sera VRAI alors que E sera FAUX.
S’il n’y a dans une condition que des ET, ou que des OU, en revanche, les parenthèses ne changent strictement rien.
Dans une condition composée employant à la fois des opérateurs ET et des opérateurs OU, la présence de parenthèses possède une influence sur le résultat, tout comme dans le cas d’une expression numérique comportant des multiplications et des additions.
On en arrive à une autre propriété des ET et des OU, bien plus intéressante.
Spontanément, on pense souvent que ET et OU s’excluent mutuellement, au sens où un problème donné s’exprime soit avec un ET, soit avec un OU. Pourtant, ce n’est pas si évident.
Quand faut-il ouvrir la fenêtre de la salle ? Uniquement si les conditions l’imposent, à savoir :
Si il fait trop chaud ET il ne pleut pas Alors
Ouvrir la fenêtre
Sinon
Fermer la fenêtre
Finsi
Cette petite règle pourrait tout aussi bien être formulée comme suit :
Si il ne fait pas trop chaud OU il pleut Alors
Fermer la fenêtre
Sinon
Ouvrir la fenêtre
Finsi
Ces deux formulations sont strictement équivalentes. Ce qui nous amène à la conclusion suivante :
Toute structure de test requérant une condition composée faisant intervenir l’opérateur ET peut être exprimée de manière équivalente avec un opérateur OU, et réciproquement.
Ceci est moins surprenant qu’il n’y paraît au premier abord. Jetez pour vous en convaincre un œil sur les tables de vérité, et vous noterez la symétrie entre celle du ET et celle du OU. Dans les deux tables, il y a trois cas sur quatre qui mènent à un résultat, et un sur quatre qui mène au résultat inverse. Alors, rien d’étonnant à ce qu’une situation qui s’exprime avec une des tables (un des opérateurs logiques) puisse tout aussi bien être exprimée avec l’autre table (l’autre opérateur logique). Toute l’astuce consiste à savoir effectuer correctement ce passage.
Bien sûr, on ne peut pas se contenter de remplacer purement et simplement les ET par des OU ; ce serait un peu facile. La règle d’équivalence est la suivante (on peut la vérifier sur l’exemple de la fenêtre) :
Si A ET B Alors
Instructions 1
Sinon
Instructions 2
Finsi
équivaut à :
Si NON AOUNONB Alors
Instructions 2
Sinon
Instructions 1
Finsi
Cette règle porte le nom de transformation de Morgan, du nom du mathématicien anglais qui l'a formulée.
2. Au-delà de la logique : le style
Ce titre un peu provocateur (mais néanmoins justifié) a pour but d’attirer maintenant votre attention sur un fait fondamental en algorithmique, fait que plusieurs remarques précédentes ont déjà dû vous faire soupçonner : il n’y a jamais une seule manière juste de traiter les structures alternatives. Et plus généralement, il n’y a jamais une seule manière juste de traiter un problème. Entre les différentes possibilités, qui ne sont parfois pas meilleures les unes que les autres, le choix est une affaire de style.
C’est pour cela qu’avec l’habitude, on reconnaît le style d’un programmeur aussi sûrement que s’il s’agissait de style littéraire.
Reprenons nos opérateurs de comparaison maintenant familiers, le ET et le OU. En fait, on s’aperçoit que l’on pourrait tout à fait s’en passer ! Par exemple, pour reprendre l’exemple de la fenêtre de la salle :
Si il fait trop chaud ET il ne pleut pas Alors
Ouvrir la fenêtre
Sinon
Fermer la fenêtre
Finsi
Possède un parfait équivalent algorithmique sous la forme de :
Si il fait trop chaud Alors
Si il ne pleut pas Alors
Ouvrir la fenêtre
Sinon
Fermer la fenêtre
Finsi
Sinon
Fermer la fenêtre
Finsi
Dans cette dernière formulation, nous n’avons plus recours à une condition composée (mais au prix d’un test imbriqué supplémentaire)
Et comme tout ce qui s’exprime par un ET peut aussi être exprimé par un OU, nous en concluons que le OU peut également être remplacé par un test imbriqué supplémentaire. On peut ainsi poser cette règle stylistique générale :
Dans une structure alternative complexe, les conditions composées, l’imbrication des structures de tests et l’emploi des variables booléennes ouvrent la possibilité de choix stylistiques différents. L’alourdissement des conditions allège les structures de tests et le nombre des booléens nécessaires ; l’emploi de booléens supplémentaires permet d’alléger les conditions et les structures de tests, et ainsi de suite.
Si vous avez compris ce qui précède, et que l'exercice de la date ne vous pose plus aucun problème, alors vous savez tout ce qu'il y a à savoir sur les tests pour affronter n'importe quelle situation. Non, ce n'est pas de la démagogie !
Malheureusement, nous ne sommes pas tout à fait au bout de nos peines ; il reste une dernière structure logique à examiner, et pas des moindres…
R ! F ! N ! 0- ADMINISTRATOR
-
Nombre de messages : 90
Age : 35
Option : LST Genie Info
:
Date d'inscription : 27/02/2008
simo-hits- Utilisateur Confirmé
-
Nombre de messages : 215
Age : 33
Option : MIP S2
:
Ville : Ifran
Date d'inscription : 14/09/2008
Sujets similaires
» PARTIE 1.2 : Les Variables
» Partie 3 : Les Tests
» PARTIE 5: Les Boucles
» Partie 2: Lecture et Ecriture
» Partie 3 : Les Tests
» PARTIE 5: Les Boucles
» Partie 2: Lecture et Ecriture
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|
Mer 16 Juil - 11:33 par mr1
» **Cours tres interessant sur les piles et les files**
Mar 14 Mai - 8:17 par puissance
» un site d’assurance très important
Mer 6 Avr - 10:52 par anna123
» Etre bien assuré même en voyage !!!
Ven 18 Fév - 2:57 par adon22
» ****Resultats MIP 2eme année****
Lun 8 Fév - 11:37 par cousinsabbani
» PARTIE 5: Les Boucles
Ven 30 Oct - 15:29 par mhidou91
» Cours du langage C !! a visionner avec power point
Ven 28 Aoû - 17:13 par ABOUKHALID87
» ****La Rentrée****
Lun 2 Fév - 13:33 par MasterCX
» ****The Story Of Bush And Shoe...****
Mar 20 Jan - 7:55 par MasterCX
» cours d informatique
Ven 16 Jan - 14:15 par MasterCX
» ****jusqu'a Quand Ghaza va t'elle tenir??****
Dim 28 Déc - 16:49 par MasterCX
» ****Nouvelle methode de tricher garantie en Japan****
Jeu 25 Déc - 12:29 par simo-hits
» Serie d'Exercices 3
Jeu 18 Déc - 13:18 par simo-hits
» Serie d'Exercices 4
Jeu 18 Déc - 13:18 par simo-hits
» Serie d'Exercices 5
Jeu 18 Déc - 13:17 par simo-hits