OPÉRATEURS BOOLÉENS - TABLE DE VÉRITÉ - ON S'AMUSE AVEC LES MATHÉMATIQUES ;-)

Armkreuz_Spiderz Messages postés 61 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 27 décembre 2008 - 15 août 2004 à 19:45
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 4 déc. 2004 à 19:19
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/25420-operateurs-booleens-table-de-verite-on-s-amuse-avec-les-mathematiques

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
4 déc. 2004 à 19:19
Je propose que le débat s'arrête là.
Tout le monde a compris l'intérêt de l'utilisation des booléens et que ceux qui veulent continuer l'exploration de cette branche des mathématiques s'orientent vers des ouvrages spécialisés.

Merci à tous d'avoir participé et pour le ton que vous avez su garder courtois.
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
4 déc. 2004 à 14:40
grandvizir > On a décidément du mal à se comprendre...
Libre à toi de programmer en assembleur, voire directement bit par bit.
Moi je programme en Delphi/Pascal, et d'une manière générale en langage de haut niveau.
Chacun son truc.
C'est pour ça que je poste sur un site Delphi, par ailleurs.
"S'il y a des opérateurs booléens, c'est pour s'en servir, pas pour les contourner. Après tout, ce ne sont que des instructions ASM qui font travailler les 2 pross."
On est bien d'accord, que fais-tu de plus, avec ton code ?
Allez, je crois que tout est dit, bonne continuation à toi. :)

japee
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
4 déc. 2004 à 14:01
Plus ça va et moins ça va... J'ai rejeté un rapide coup d'oeil à ton Zip (j'ai passé la poussière récemment ;). Horrifiant de surprise. C'est quasi pareil, sauf qu'avec moi, c'est plus court et plus clair. Si tu n'as pas envie de reconnaître mon idée, tant pis pour toi. Si t'as pas envie, t'as pas envie, mais moi je dis au revoir.

S'il y a des opérateurs booléens, c'est pour s'en servir, pas pour les contourner. Après tout, ce ne sont que des instructions ASM qui font travailler les 2 pross.

Je te filerai un exercice supplémentaire si tu le désires. Car ne crois pas qu'en te mettant au fond, tu échapperas aux cours de maths.

;)))
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
3 déc. 2004 à 23:12
Intéressante démonstration de mathématiques, grandvizir.
Mais je ne vois pas ce que çela apporte au niveau de la programmation, vu que tu n'utilises en définitive que les opérateurs booléens dont nous nous servons de manière habituelle, dans des combinaisons qui ne font appel qu'à notre logique.
En faisant comme monsieur Jourdain, quoi, qui faisait de la prose sans le savoir.
Ma démonstration était basique, mais à mon avis suffisante et claire.
Tout le reste en découle.
A chacun de savoir quand et comment utiliser cette base.
Certaines questions sur le forum montrent que certains ont un peu de mal avec la logique booléenne... Laissons leur en saisir les rudiments sans en compliquer la démonstration.
Mon code était posté dans cet esprit.
Mais libre à toi de continuer à nous prodiguer tes cours de maths. Moi, tu m'excuseras, mais j'irai me mettre au fond, près du radiateur ;)
Et il rit, Boole, dingue... :))))

P-S: fâché, ben manquerait plus que ça ;)
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
1 déc. 2004 à 16:58
DFM

object frBoole: TfrBoole
Left = 200
Top = 108
BorderIcons = [biSystemMenu, biMinimize]
BorderStyle = bsSingle
Caption = 'Les opérateurs booléens'
ClientHeight = 226
ClientWidth = 329
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Position = poScreenCenter
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object LRsl: TLabel
Left = 8
Top = 192
Width = 313
Height = 25
Alignment = taCenter
AutoSize = False
Caption = 'Résultat'
Font.Charset = DEFAULT_CHARSET
Font.Color = clGreen
Font.Height = -19
Font.Name = 'Courier New'
Font.Style = [fsBold]
ParentFont = False
Layout = tlCenter
end
object rgP: TRadioGroup
Left = 8
Top = 8
Width = 81
Height = 177
Caption = ' P '
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -20
Font.Name = 'MS Sans Serif'
Font.Style = []
ItemIndex = 0
Items.Strings = (
'false'
'true')
ParentFont = False
TabOrder = 0
OnClick = rgPClick
end
object rgOp: TRadioGroup
Left = 96
Top = 12
Width = 137
Height = 173
Columns = 2
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -13
Font.Name = 'MS Sans Serif'
Font.Style = []
ItemIndex = 1
Items.Strings = (
'not'
'and'
'nand'
'or'
'xor'
'=>'
'<=>'
'='
'=/')
ParentFont = False
TabOrder = 1
OnClick = rgPClick
end
object rgQ: TRadioGroup
Left = 240
Top = 8
Width = 81
Height = 177
Caption = ' Q '
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -20
Font.Name = 'MS Sans Serif'
Font.Style = []
ItemIndex = 0
Items.Strings = (
'false'
'true')
ParentFont = False
TabOrder = 2
OnClick = rgPClick
end
end
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
1 déc. 2004 à 16:58
PAS:

unit boole;
interface
uses SysUtils, Classes, Controls, Forms, StdCtrls, ExtCtrls;
type
TfrBoole = class(TForm)
rgP: TRadioGroup;
rgOp: TRadioGroup;
rgQ: TRadioGroup;
LRsl: TLabel;
procedure rgPClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
end;
var frBoole: TfrBoole;
implementation
{$R *.DFM}
procedure TfrBoole.rgPClick(Sender: TObject);
const BoolTbl : array[boolean] of string[5] = ('false', 'true');
var P, Q, R : boolean;
i : shortint;
begin
i:=rgOp.ItemIndex;
if i=-1 then Exit;
rgQ.Enabled:= i<>0;
P:=boolean(rgP.ItemIndex);
Q:=boolean(rgQ.ItemIndex);
case i of
0: R:= not P;
1: R:= P and Q;
2: R:= not(P and Q);
3: R:= P or Q;
4: R:= P xor Q;
5: R:= (not P) or Q;
6,
7: R:= P=Q;
8: R:= P<>Q;
else R:=false;
end;
if i=0 then LRsl.Caption:= 'not '+BoolTbl[P]+' = '+BoolTbl[R]
else LRsl.Caption:'" '+BoolTbl[P]+' '+rgOp.Items[i]+' '+BoolTbl[Q]+' " '+BoolTbl[R];
end;
procedure TfrBoole.FormCreate(Sender: TObject);
begin
rgPClick(nil);
end;
end.
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
1 déc. 2004 à 16:57
Aucun des deux.

J'étais sûr de vos réactions, car en fait... je n'ai pas été assez clair sur le coup. Je ne visais ABSOLUMENT PAS du tout Japee, mais «des codes postés uniquement dans le but d'être corrigés». Celui de Japee est fonctionnel (bien que limité, et c'est pas pareil): il ne rentre pas dans ce dernier critère. Pourquoi avoir commenté alors ? C'est à cause de la généralité des tuyaux donnés... qui, malgré ce que prétend Japee, sont ici bien présents et utiles! Le commentaire de Kirua est par ailleurs tout à fait juste.

La longueur nuit à la clareté. Donc synthétisons ce qui a déjà été dit:
=1)
Japee, il manque 4 choses pour être parfait:
1) la porte NAND: not[P and Q]
2) l'implication: not(P) or Q
3) l'équivalence: P=Q [true si (P faux et Q faux) ou (P vrai et Q vrai)]
4) la différence: P<>Q [équivaut au XOR, ou not équivalence]
=2)
Ceci dit, il peut toujours ajouter les 4 portes logiques. Après tout, ce sont des opérateurs logiques à part entière, bien que Delphi ne peut les exprimer que indirectement via des combinaisons de AND, OR et XOR.
=3) Ajouter la sympathique petite séance de météorologie.

Désolé, mais je ne vois pas où est le prétendu blabla. Je peux très bien te donner la solution, mais il faut quand même chercher un peu de ton côté, surtout que c'est simple et que toutes les informations sont là ! L'auteur n'est de plus pas si débutant qu'il souhaiterait peut-être nous le faire croire ;)

J'ai refait ton code source en 10 minutes puisque la demande est enfin devenue explicite. Les sources sont donnés ci-après. Tu pourras comparer les résultats avec les infos de la page. Sont-ils si différents ? Non, c'est pareil.

Au passage, n'oublions pas qu'il y a les maths pour les pros (polytechniciens par exemple, tous capables d'intégrer une fonction de tête) et celles de ceux qui veulent bien y prêter attention sans être réticents. Cette dernière option nous concerne.

Souvent, j'emploie l'adjectif PARFAIT. Cela ne signifie pas nécessairement PARFAIT dans l'ABSOLU, mais PARFAIT dans le sens où on n'a pas fait les choses à moitié. Ca fait déjà plusieurs fois que Japee me fait le coup.

Sache aussi que les tuyaux aspirent vers le haut, et non vers le bas. Même si certains commentaires peuvent paraître irritants parfois, leur ignorance n'est pas conseillée. Ils ne sont donc pas à relativiser, d'autant plus qu'ils peuvent éventuellement te faire penser à qqch de mieux encore. Dans ce cas, c'est très très bien. Un mauvais commentaire n'a jamais exclut le fait d'en dire un bon par la suite.

A bientôt... et jamais fâché ! Jamais. Ca serait bien idiot.

Donc voici les codes sources découpés en un DFM et un PAS.
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
29 nov. 2004 à 01:38
J'aurais dû écrire de manière plus élégante:

"Ils s'imaginent bêtement que l'univers s'articule autour de la compréhension étriquée qu'ils en ont."

J'aurais pu dire "naïvement" au lieu de "bêtement", c'est peut-être plus approprié ?
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
29 nov. 2004 à 01:28
Au fait, "horripilant", pas "horipillant".
Les "matheux" purs m'ont toujours filé des allergies.
Ils manquent la plupart du temps de simple logique.
Heureusement pour eux, ils n'en ont même pas conscience.
Ils s'imaginent bêtement que l'univers s'articule autour de leur compréhension étriquée de l'univers.
Ils ont bien le temps de comprendre, heureusement... enfin, on l'espère...
Bon courage, la vie n'est pas un long fleuve tranquille !
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
28 nov. 2004 à 21:31
Que c'est beau ce que tu viens d'écrire, Kirua.
Rien à rajouter, tout est dit !
Merci à toi de l'avoir exprimé.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
28 nov. 2004 à 21:25
"il n'y a rien de plus horipillant (euh!) que des codes sources postés en vue d'être améliorés par la suite."

tu parles des codes postés uniquement dans le but d'être corrigés, ou de codes déjà fonctionnels mais qui pourraient accueillir de substancielles améliorations? dans le premier cas, nous sommes d'accord, direction forum. Pour le second cas par contre, c'est justement tout l'intéret de l'open source. Pourquoi les systèmes libres (de toutes sortes, je ne parle pas que des OS) souffrent-ils si peu des failles de sécurité / de bugs? C'est justement parce que tout un chacun qui veut apporter sa pierre à l'édifice le peu, et par son savoir aider la "communauté" dont on parle tant, et qui ne cesse de me faire vibrer, cette "entente cordiale" qui a l'âge de l'Internet...
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
28 nov. 2004 à 21:25
Bref, que du bla bla...
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
28 nov. 2004 à 21:22
Eh bien ok, grandvizir, continues donc à émettre des commentaires sans possibilité de faire évoluer le code source d'origine.
C'est ton choix.
Tes commentaires restent donc à relativiser...

Sans rancune, je suis un peu déçu, mais j'ai bien compris ;)
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
28 nov. 2004 à 20:03
Péremptoire ?? Ce serait mal me connaître. Et dommage que les intonations ne puissent pas passer par le texte, car sinon on verrait très bien que je ne suis ni méchant ni contraignant. Enfin... faut pas exagérer quand même.

Je ne fais évoluer aucun code source tant que ce n'est pas le mien. Tu as donc l'entière responsabilité de tes sources. En revanche, j'effectue pour moi toutes les modifications nécessaires lorsque je projette de les réutiliser (c'est pas tjs compatible avec D3). Ceci dit, j'avertis les membres de ces dernières si elles sont grosses comme un... comme un quoi ??

Je donne sinon des tuyaux (de calibre variable) afin que ça avance un peu, car il n'y a rien de plus horipillant (euh!) que des codes sources postés en vue d'être améliorés par la suite.

Et je ne vois aucunement l'aide supplémentaire que je peux apporter sur la manipulation des opérateurs logiques. Après tout, il suffit juste de mettre les parenthèses de la bonne manière dans les tests de condition. :)

Aller, n'ayons pas les booles ! Le chemin suivi est déjà très bon.
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
28 nov. 2004 à 17:30
Delphiprog > C'est sûr que si c'est moi qui programme les prévisions météo, ça va pas arranger les choses. C'est pas de la fausse modestie, il faut savoir reconnaitre ses limites... Mais la perfection, il faut toujours essayer d'y tendre, en sachant qu'on ne pourra jamais dépasser ses propres possibilités (non, sans déc...).

grandvizir > Je t'incite vivement à faire évoluer ce code, ça nous apprendra sûrement quelque chose. Mais essaye donc d'être un peu moins péremptoire dans tes commentaires, mets un peu d'huile, quoi... si tu vois ce que je veux dire ;)
Dans l'attente de ton code... :)
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
28 nov. 2004 à 08:56
Ceci dit, il peut toujours ajouter les 4 portes logiques. Après tout, ce sont des opérateurs logiques à part entière, bien que Delphi ne peut les exprimer que indirectement via des combinaisons de AND, OR et XOR.

Aller, faites évoluer ce code ! Dans l'état actuel, il est trop basique pour être suffisant.

Boole de neige :))) ??
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
27 nov. 2004 à 22:12
Hé Japee, heureusement que tu n'as pas envisagé une application météorologique de ton application : la météo se trompe si souvent... :o]

La perfection restera-t-elle éternellement un objectif inatteignable ?
Je vous le demande mon bon monsieur :o)
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
27 nov. 2004 à 21:16
Je n'avais pas envisagé une application météorologique de mon source, je l'avoue...

La perfection est-elle de ce monde, grandvizir ?
J'en doute...
J'essaye de tendre vers la mienne... ;)
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
27 nov. 2004 à 13:01
Japee, il manque 4 choses pour être parfait:
1) la porte NAND: not[P and Q]
2) l'implication: not(P) or Q
3) l'équivalence: P=Q [true si (P faux et Q faux) ou (P vrai et Q vrai)]
4) la différence: P<>Q [équivaut au XOR, ou not équivalence]

L'implication se note 'égal - supérieur à' (=>)
L'équivalence se note 'inférieur à - égal - supérieur à' (<=>)
Si je rajoute cela, c'est à cause des probables corrections HTML de certains caractères.

Rions un peu sur le sens ambiguë de l'implication
---------------------------------
P=Il pleut
Q=Je prend mon parapluie

S'il pleut (P vrai), je prend mon parapluie (Q vrai): implication vraie.
S'il pleut (P vrai), je ne prend pas mon parapluie (Q faux): implication fausse. En effet, je suis un boulet. Pourquoi se mouiller ?
Il ne pleut pas (P faux), je prend mon parapluie (Q vrai): implication vraie. Je le prend au cas où.
Il ne pleut pas (P faux), je ne prend pas mon parapluie (Q faux): implication vraie. Bien qu'il ne pleuve pas, je me risque à ne pas prendre mon parapluie.

Sympathique.
---------------------------------

Je vous épargnerai la souffrance de la négation des implications et des équivalences. Sinon donnez vous un coup de boole dans le mûr. :)))

Pas l'auteur du source.
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
3 oct. 2004 à 21:49
Bon, Guybrush3p... soyons clair !
Tu compiles tout ça avec ta version de Delphi préférée.
Si ça te plait, c'est cool...
Si ça te plait pas, tu essayes de m'exprimer le plus clairement possible pourquoi :
- aucun intérêt pour moi,
- le code est à ch..r
- autre raison.
Bonne prog' à toi, si tu programmes, sinon bon vent.

L'auteur du source.
Guybrush3p Messages postés 2 Date d'inscription mercredi 29 septembre 2004 Statut Membre Dernière intervention 3 octobre 2004
3 oct. 2004 à 18:40
il s'ouvre avec quoi ?
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
1 oct. 2004 à 00:06
Quybrush3p : qui a parlé de tuto ?
En tous cas pas l'auteur qui a réalisé un soft pour permettre d'apprendre à utiliser les booléens en s'amusant et nous l'en remercions.

Alors Japee, on se la fait cette partie de Boole ? (lol)
Guybrush3p Messages postés 2 Date d'inscription mercredi 29 septembre 2004 Statut Membre Dernière intervention 3 octobre 2004
30 sept. 2004 à 19:30
je ne vois rien qui ressemble a un tuto dans ce zip ??
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
8 sept. 2004 à 01:11
Bah, je vais navrer certains et rassurer quelques autres. On peut avoir des problèmes avec les mathématiques et adorer la programmation.
Rien n'est simple, ça serait pas assez compliqué ;-)

L'auteur du source :-)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
16 août 2004 à 14:45
l'inventeur de l'algèbre booléenne, ni plus ni moins, qui a vécu avant les ordinateurs, ça donne à réfléchir :)
Petit tutorial pour ceux qui n'auraient (absoluement rien) compris en ce qui conserne les operateurs booléens.
Je presise quand meme que tous ces operateurs sont tres biens expliqués dans l'aide de delphi.

Je cite" Remerciements à George Boole (1815-1864) qui m'a inspiré ce didacticiel ;-)" .
Qui-est-ce ? l'inventeur des booléens ??
Armkreuz_Spiderz Messages postés 61 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 27 décembre 2008
16 août 2004 à 02:21
Oui je programme... et d`ailleurs j`adore les math... ;) mais je cite Japee "...la logique booléenne, à laquelle on ne saurait échapper bien longtemps..." ;)

bye,
Armz
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
16 août 2004 à 01:48
Comment ça "ahhhh les maths" ? c'est génial les maths, et si tu programmestu vas avoir du mal sans ça! :)
Armkreuz_Spiderz Messages postés 61 Date d'inscription mercredi 23 juin 2004 Statut Membre Dernière intervention 27 décembre 2008
15 août 2004 à 19:45
J'aime bien ;) ahhhh les math... pff

Armz
Rejoignez-nous