conditions combinées

Eléphanteau du PHP | 28 Messages

13 sept. 2012, 00:13

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)
{
.
.
.
.
}

Eléphant du PHP | 229 Messages

13 sept. 2012, 06:49

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

Mammouth du PHP | 2278 Messages

13 sept. 2012, 13:43

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 && ||....
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 229 Messages

13 sept. 2012, 13:48

Je comprend pas loi de clara Morgan

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

13 sept. 2012, 14:09

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 ;)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 229 Messages

13 sept. 2012, 14:21

Les conditions c de l algèbre de booléen vraiment? la je m embrouille :(

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

13 sept. 2012, 14:36

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 ;)

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 229 Messages

13 sept. 2012, 14:40

J ai déjà suivi ces cours. Mais j avais jamais fais le rapprochement.

Mammouth du PHP | 2278 Messages

13 sept. 2012, 14:56

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)*/
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ViPHP
xTG
ViPHP | 7331 Messages

13 sept. 2012, 15:34

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. ;)

Mammouth du PHP | 2278 Messages

13 sept. 2012, 16:25

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.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ViPHP
xTG
ViPHP | 7331 Messages

13 sept. 2012, 16:35

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:

Mammouth du PHP | 2278 Messages

13 sept. 2012, 21:24

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)
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 229 Messages

13 sept. 2012, 21:35

Il dit "menfin" Gaston.