Connexion

Récupérer mon mot de passe

Sondage

Ce Forum répond-t-il a vos attentes?

37% 37% [ 23 ]
20% 20% [ 13 ]
22% 22% [ 14 ]
17% 17% [ 11 ]
1% 1% [ 1 ]

Total des votes : 62

Derniers sujets
» COURS D’ATOMISTIQUE de l'ENSA d'AGADIR
Dim 15 Nov - 15:00 par luluf62

» PARTIE 5: Les Boucles
Ven 30 Oct - 22:29 par mhidou91

» Cours du langage C !! a visionner avec power point
Sam 29 Aoû - 0:13 par ABOUKHALID87

» **Cours tres interessant sur les piles et les files**
Sam 29 Aoû - 0:11 par ABOUKHALID87

» ****La Rentrée****
Lun 2 Fév - 21:33 par MasterCX

» ****The Story Of Bush And Shoe...****
Mar 20 Jan - 15:55 par MasterCX

» ****Resultats MIP 2eme année****
Dim 18 Jan - 15:00 par MasterCX

» cours d informatique
Ven 16 Jan - 22:15 par MasterCX

» ****jusqu'a Quand Ghaza va t'elle tenir??****
Lun 29 Déc - 0:49 par MasterCX

» ****Nouvelle methode de tricher garantie en Japan****
Jeu 25 Déc - 20:29 par simo-hits

» Serie d'Exercices 3
Jeu 18 Déc - 21:18 par simo-hits

» Serie d'Exercices 4
Jeu 18 Déc - 21:18 par simo-hits

» Serie d'Exercices 5
Jeu 18 Déc - 21:17 par simo-hits

» Serie d'Exercices 2
Jeu 18 Déc - 21:16 par simo-hits

» Partie 2: Lecture et Ecriture
Jeu 18 Déc - 21:16 par simo-hits

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 


Rechercher Recherche avancée

Novembre 2009
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
30      

Calendrier Calendrier

Meilleurs posteurs
simo-hits
 
Admin
 
MasterCX
 
R ! F ! N ! 0
 
xenon01
 
youssef GI
 
hamza_s
 
A.T.J.
 
anas2704
 
death note
 

Flux RSS

Yahoo! 
Google Reader 
MSN 
AOL 
NewsGator 
Rojo 
Bloglines 


Statistiques
Nous avons 486 membres enregistrés
L'utilisateur enregistré le plus récent est badreddine hamoudan

Nos membres ont posté un total de 1387 messages dans 344 sujets
Qui est en ligne ?
Il y a en tout 2 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 2 Invités

Aucun

[ Voir toute la liste ]


Le record du nombre d'utilisateurs en ligne est de 10 le Jeu 28 Fév - 23:45

PARTIE 4 : ENCORE DE LA LOGIQUE

Poster un nouveau sujet   Répondre au sujet

Voir le sujet précédent Voir le sujet suivant Aller en bas

PARTIE 4 : ENCORE DE LA LOGIQUE

Message par R ! F ! N ! 0 le Jeu 20 Mar - 16:31

Partie 4
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
ADMINISTRATOR

Masculin
Nombre de messages: 90
Age: 21
Option: LST Genie Info
 :
Date d'inscription: 27/02/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: PARTIE 4 : ENCORE DE LA LOGIQUE

Message par simo-hits le Jeu 18 Déc - 21:14

thanks

simo-hits
Utilisateur Confirmé
Utilisateur Confirmé

Masculin
Nombre de messages: 215
Age: 19
Option: MIP S2
 :
Ville: Ifran
Date d'inscription: 15/09/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum