Forum Graph100

Forum Graph100

Vous n'êtes pas identifié.

Annonce

Bonjour et bienvenue sur le nouveau Forum Graph100 !
L'intégralité des données a été transférée sur un forum PunBB et tout les comptes sont fonctionnels avec le même nom d'utilisateur et mot de passe.
Un wiki est aussi disponible avec le même compte ! N'oubliez pas de remettre votre avatar, bon surf !
Pour plus d'informations, consultez ce post.

#1 31 Dec 2003 11:31:01

krach
Membre
Lieu: Le Mans(72), le Finistère(29)
Date d'inscription: 27 Oct 2003
Messages: 346

Question tellement simple que j'en suis pas sûre!

En fait voilà ce que je voudrais savoir :
est-ce que ça :

Code:

if((c1!=0 && c2!=0 && c3!=0)&&(c1==c2==c3))...

est remplaçable par ça :

Code:

if((c1==c2==c3)!=0)...

© 2003 - 2006 Krach

Hors ligne

 

#2 31 Dec 2003 12:19:04

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: Question tellement simple que j'en suis pas sûre!

bin dans la logique, déjà, tu aurait:

(c1==c2==c3), donc c1, c2 et c3 doivent ètre éguaux.

maintenant, ta 2eme expression, si les 3 sont éguaux, l' expression
(c1==c2==c3) va te renvoyé 1, qui est différent de 0, mais si les 3 sont éguaux à 0, ça reste vrai!

de manière général:
if ([expression != 0)
est équivalent à:
if ([expression])
donc  ta 2eme expression ne remplace pas la 1ere, il manque 1 condition, celle de tester voir si 1 variable est nulle, moi je mettrai ceci:

if (( c1 == c2 == c3) && c1 ) [...];


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#3 31 Dec 2003 12:36:46

2072
Programmeur Graph100
Lieu: Somewherebourg
Date d'inscription: 29 Jan 2002
Messages: 2056
Site web

Re: Question tellement simple que j'en suis pas sûre!


(c1==c2==c3) va te renvoyé 1, qui est différent de 0, mais si les 3 sont éguaux à 0, ça reste vrai!

Il faut lire ((c1==c2)==c3)  donc si les 3 sont null ça fera (1==0) donc 0 donc ce sera faux...

Si j'ai  bien compris ce que tu veux faire c'est tester si toute les variables sont égales et non nul donc ce qu'il te faut c'est :

Code:

(c1 && (c1==c2) && (c2==c3))

Note: certaines parenthèses ne sont pas utiles ici, mais comme tu viens de t'en rendre compte ça évite de se planter alors il vaut mieux les mettre, ça ne coûte rien...

Une petite note pour l'optimisation : lorsqu'il y a une suite de tests avec && comme ici, il vaut mieux mettre le plus simple (rapide) a réaliser en premier, comme ça s'il échoue les suivants ne sont même pas testés.


-~2072~-
Paid Emails
[URL=http://www.2072productions.com]2072productions.com[/URL]
[URL=http://www.casiocalc.org]casiocalc.org[/URL]

Hors ligne

 

#4 31 Dec 2003 12:44:13

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Question tellement simple que j'en suis pas sûre!

non non krach ca c une aberration totale lol  lol

(c1==c2) renvoie une valeur booleenne 1 ou 0 , si tu rajoutes ==c3 derriere tu vas comparer le résultat de la premiere comparaison (true ou false en fait) avec la valeur de c3, ce qui ne donne pas du tout le meme résultat!
Idem pour ((c1==c2)!=0), ca ca revient à écrire exactement (c1==c2) , puisque tu testes si l'égalité c1==c2 n'est pas égale à 0, donc si on a bien c1 égale c2...

Donc en fait aucune de tes 2 expressions n'est correcte, tu es obligé d'écrire

Code:

if((c1!=0 && c2!=0 && c3!=0 && c1==c2 && c1==c3))...

cette remarque tient aussi pour

Code:

if(a<i<b) ... 

par exemple, qui est aussi incorrect, puisque ca revient à vérifier si le résultat de la premiere comparaison (1 ou 0) est plus petit que b...
on est bien obligé de mettre

Code:

if(a<i && i<b) ... 

:!:


Pensez à surveiller mes releases wink

Hors ligne

 

#5 31 Dec 2003 12:45:24

Julien
C++iste convaincu
Lieu: Waterloo (Be)
Date d'inscription: 29 May 2002
Messages: 1456
Site web

Re: Question tellement simple que j'en suis pas sûre!

Oui c vrai 2072 a trouvé une expression plus simple, je n'avais pas pensé à ca, au moins ca c correct lol


Pensez à surveiller mes releases wink

Hors ligne

 

#6 31 Dec 2003 15:05:20

Azor
Le Coté Obscur De La G100
Lieu: glop glop!
Date d'inscription: 04 May 2002
Messages: 5479
Site web

Re: Question tellement simple que j'en suis pas sûre!

je savais pas pour le langage c que fallait lire comme ça, lol

(toute façon, je teste jamais plus de 2 variables sans mettre des parenthese)


Anciennement X-thunder28
Cats shall rule teh world!

Hors ligne

 

#7 01 Jan 2004 07:39:27

Fantasy
Membre
Lieu: S.U.A Agen rugby (Lot et Garon
Date d'inscription: 15 Jun 2003
Messages: 295
Site web

Re: Question tellement simple que j'en suis pas sûre!

c'est exactement la meme logique que le basic et sa c'est plutot cool !


Linksoft (Fantasy and Spank)
le site: www.membres.lycos.fr/linksoft

Hors ligne

 

#8 01 Jan 2004 08:45:43

krach
Membre
Lieu: Le Mans(72), le Finistère(29)
Date d'inscription: 27 Oct 2003
Messages: 346

Re: Question tellement simple que j'en suis pas sûre!

OK merci en tout cas.
Heureusement que je vous ai posé la question car j'aurais certainement continué mes conneries lol


© 2003 - 2006 Krach

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr