Forum

Catégorie : Programmes
Forum : Aide à la programmation
Vues : 990
Réponses : 7
Type : discussion
Etat : réponses autorisées

Priorité booléenne (xor)

linkakro le 04/01/2010 à 21:13
A mon niveau scolaire, il n'existe pas de symbole pour xor comme + et *. On exprime non(a)*b+a*non(b) qui donne l'équivalent. Je ne connais donc pas de priorité au sens de la calculcatrice pour xor.

-> Quelles sont les priorités entre "et", "xor" et "ou" ?
Rézus le 05/01/2010 à 20:03
Le xor je sais plus a quoi il correspond,mais si j'ai bien compris ce que tu veux dire,je sais que le "et" est prioritaire par rapport au "ou".D'aileurs il sert souvent "d'articulation" entre plusieurs "et"
linkakro le 06/01/2010 à 00:15
xor = ouexclusif
J'ai testé le "xor" et il semble prioritaire sur le "ou".
logiquement le "et" devrait être toujours prioritaire mais je n'ai pas essayé.

EDIT 5/8/2013 : maintenant je sais que j'ai tort. J'avais probablement testé un cas particulier. or et xor sont au même niveau et and est prioritaire sur les deux.
Rézus le 17/01/2010 à 15:13
Moi j'ai une question aussi.
Est-ce que "If A=B et B=C ou A=B et B=D" équivaut à "If A=B et (B=C ou B=D)" ??
linkakro le 17/01/2010 à 17:55
Je crois que oui.
Rézus le 17/01/2010 à 19:17
Ah,si je 'avais su plus tôt...
linkakro le 18/01/2010 à 16:35
Le "et" se traduit par * et le "ou" se traduit par +.
a*b+a*c=a*(b+c)
En effet l'algèbre booléen fonctionne avec les factorisations.

J'en profite pour rappeler des trucs qui pourraient servir aux programmeurs autres que les SI/TI (lol la coincidence). NE PAS CONFONDRE BOOLEEN ET TI82
le non sécrit avec une barre horizontale au dessus
non(a*b)=non(a)+non(b)
non(a+b)=non(a)*non(b)
a xor b = non(a)*b+a*non(b)
linkakro le 05/08/2013 à 19:50
Je rectifie mon observation fausse que personne n'a relevé pendant tout ce temps :
"xor" et "or" n'ont pas de priorité, ils sont executés de gauche à droite.

Le manuel est formel :
"Le manuel 82statfr page 56 chapitre 1-27" a écrit :
EOS calcule les fonctions d’une expression dans l’ordre suivant :
1 Fonctions simples précédant l’argument, telles que racine( , sin( ou log(
2 Fonctions introduites après l’argument, telles que ², ^-1, !, °, r, et conversions
3 Puissances et racines, telles que 2^5 ou 5xracine(32
4 Permutations (nPr) et combinaisons (nCr)
5 Multiplications, multiplications implicites et divisions
6 Additions et soustractions
7 Fonctions relationnelles, telles que > ou <=
8 Opérateur booléen and
9 Opérateurs booléens or et xor
Les fonctions d’un même groupe de priorité sont évaluées de gauche à droite par EOS.
Les calculs inclus dans des parenthèses sont effectués en priorité.


J'ai testé pour vérifier au moins que j'avais tort.
A or (B xor C) or D
Avec ou sans parenthèses certaines combinaisons de 0/1 pour les variables donnent un résultat différent. {1,0,1,0} par exemple.