Page 1 sur 1

conditions combinées

Posté : 13 sept. 2012, 00:13
par chessmancaryl
Bonsoir;

Je veux savoir si on peut combiner deux conditions après le if?
càd est ce que la syntaxe suivante est correcte:

if ($width!=0) and ($height!=0)
{
.
.
.
.
}

Re: conditions combinées

Posté : 13 sept. 2012, 06:49
par schim59
Bonjour,
C'est ça, ou encore :
if (tactac= && toctoc!=1)
pour verifier si les 2 renvoient TRUE.

Sinon il y a
||
au moins un des deux renvois TRUE

ou encore
OR
Ou même
XOR
Seulement l'un des deux.

Bon codage

http://php.net/manual/fr/language.operators.logical.php

Re: conditions combinées

Posté : 13 sept. 2012, 13:43
par sirakawa
Oui mais:
il vaut mieux parenthéser car ça limite ou évite les problèmes de priorité des opérateurs et c'est plus lisible:
<?PHP
$mot_possible = "jette";
$mot_possible = "rejette";
$essais_permis = 3;
$mot_saisi = "jette";
/*faire varier $nb_essais : */
$nb_essais = 12;

if ( $mot_saisi == "jette" or $mot_saisi == "rejette" and $nb_essais < $essais_permis)
{
	print "ok";	
}
else
{
	print "trop d'essais";	
}
if (( $mot_saisi == "jette" or $mot_saisi == "rejette") and ($nb_essais < $essais_permis))
{
	print "ok";	
}
else
{
	print "trop d'essais";	
}
print "
<table border = '1'>
<caption>OR (ou inclusif)</caption>
<tr>
	<th>A</th>
	<th>B</th>
	<th>Résultat</th>
</tr>
<tr>
	<td>Vrai</td>
	<td>Vrai</td>
	<td>Vrai</td>
</tr>
<tr>
	<td>Vrai</td>
	<td>Faux</td>
	<td>Vrai</td>
</tr>
<tr>
	<td>Faux</td>
	<td>Vrai</td>
	<td>Vrai</td>
</tr>
<tr>
	<td>Faux</td>
	<td>Faux</td>
	<td>Faux</td>
</tr>
</table>
<table border = '1'>
<caption>XOR (ou exclusif)</caption>
<tr>
	<th>A</th>
	<th>B</th>
	<th>Résultat</th>
</tr>
<tr>
	<td>Vrai</td>
	<td>Vrai</td>
	<td>Faux</td>
</tr>
<tr>
	<td>Vrai</td>
	<td>Faux</td>
	<td>Vrai</td>
</tr>
<tr>
	<td>Faux</td>
	<td>Vrai</td>
	<td>Vrai</td>
</tr>
<tr>
	<td>Faux</td>
	<td>Faux</td>
	<td>Faux</td>
</tr>
</table>
<table border = '1'>
<caption>AND
</caption>
<tr>
	<th>A</th>
	<th>B</th>
	<th>Résultat</th>
</tr>
<tr>
	<td>Vrai</td>
	<td>Vrai</td>
	<td>Vrai</td>
</tr>
<tr>
	<td>Vrai</td>
	<td>Faux</td>
	<td>Faux</td>
</tr>
<tr>
	<td>Faux</td>
	<td>Vrai</td>
	<td>Faux</td>
</tr>
<tr>
	<td>Faux</td>
	<td>Faux</td>
	<td>Faux</td>
</tr>
</table>";

?>
Ajoutons la loi de De morgan
non (A ou B) === non(A) et non(B)
non (A et B) === non (A )ou non (B)
Note pour les chébran:oui, je sais qu'il existe && ||....

Re: conditions combinées

Posté : 13 sept. 2012, 13:48
par schim59
Je comprend pas loi de clara Morgan

Re: conditions combinées

Posté : 13 sept. 2012, 14:09
par moogli
Je comprend pas loi de clara Morgan
Euh oui mais non. Les lois de Morgan c'est de l'algebre de bool.
Et ce que sirakawa à montrée si dessus.

Je t'invite à ne pas penser à ta collec de pr0n lorsque tu va demander à Google des cours sur l'algebre de bool ;)


@+

Re: conditions combinées

Posté : 13 sept. 2012, 14:21
par schim59
Les conditions c de l algèbre de booléen vraiment? la je m embrouille :(

Re: conditions combinées

Posté : 13 sept. 2012, 14:36
par moogli
Heu mwé, connais tu l'algebre de bool ?

Une condition c'est un booléen true / false ( 0 / 1 en électronique)

À partir du mot où tu commence à utiliser des opérateurs booléen c'est de l'algèbre de bool.

Donc $var & $truc c'est de l'algèbre de bool, on pas sous la forme que l'on vois en électronique mais c'est pareil.

Sirakawa n'a fait que rappeler les règles permettant la simplification d'une expression.

Cherche des cours sur la chose tu pourras y voir plus clair ;)

@+

Re: conditions combinées

Posté : 13 sept. 2012, 14:40
par schim59
J ai déjà suivi ces cours. Mais j avais jamais fais le rapprochement.

Re: conditions combinées

Posté : 13 sept. 2012, 14:56
par sirakawa
L'algèbre de Boole est une discipline de la logique et des maths, exploitée surtout par les automaticiens et les informaticiens, aussi bien en conception hard que en conception soft. Une des différences est que les automaticiens ont tendance à peu parenthéser. L'autre est que le ET est en général symbolisé par *, le OU par +, la négation par un trait au-dessus de l'élément nié. Les logiciens ont leur propre formalisme, mais les règles sont les mêmes. Un truc amusant au passage : On démontre assez facilement que avec seulement ET et NON on peut tout faire; ça donne des expressions peu lisibles mais au niveau du matériel, ça limite le nombre de composants différents dont on a besoin, donc simplifie les réparations...
Un exemple simple est le suivant:
je veux que la valeur saisie soit plus petite que 10 et plus grande que 0.
$valeur = une fonction;
while ($valeur >= 10 or $valeur <= 0)
{
resaisir la valeur
}

/*résultat (valeur < 10 and valeur > 0) = MORGAN> condition de ma boucle while : non (valeur < 10 and valeur > 0) => (valeur >= 10 or valeur <= 0)*/

Re: conditions combinées

Posté : 13 sept. 2012, 15:34
par xTG
On démontre assez facilement que avec seulement ET et NON on peut tout faire
Avec une combinaison d'opérateur NOR on obtient n'importe quel autre opérateur. ;)

Re: conditions combinées

Posté : 13 sept. 2012, 16:25
par sirakawa
On démontre assez facilement que avec seulement ET et NON on peut tout faire
Avec une combinaison d'opérateur NOR on obtient n'importe quel autre opérateur. ;)
me semble que c'est vrai aussi pour NAND... #-o , mais ça fait des équations dans lesquelles il faut avoir la foi du charbonnier.

Re: conditions combinées

Posté : 13 sept. 2012, 16:35
par xTG
Tu prêches un converti... J'avais eu un projet d'électronique avec des contraintes techniques en terme de nombre de portes logiques (rupture de stock des plus courantes en gros)...
Mais quel bordel ! :evil:

Re: conditions combinées

Posté : 13 sept. 2012, 21:24
par sirakawa
Il est vrai que, en théorie, la logique formelle assure que si la formule de départ est juste et les règles de substitution correctement appliquées, le résultat est une équivalence du départ...
Mes souvenirs sont qu'un simple OR avec simplement des NAND c'est assez croquignol. Bien sûr, après, il n'y a qu'à pousser (mouais, enfin, bon comme dirait Gaston)

Re: conditions combinées

Posté : 13 sept. 2012, 21:35
par schim59
Il dit "menfin" Gaston.