IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Utilisation de && et ||


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 8
    Par défaut Utilisation de && et ||
    Bonjour à tous,

    Bon je suis un peu perdu avec l'utilisation de ces 2 symboles ( && et || ).
    En faite j'ai un exo où l'on me demande de trouver les solutions des calculs suivants :
    a = 1, b = 1, c = 0, d = 0
    a || b && c || d = ? Réponse : 1
    (a || b) && c || d = ? Réponse : 0
    a || ( b && c) || d = ? Réponse : 1
    a || b && (c || d ) = ? Réponse : 1
    J'ai les bonnes réponses mais je ne sais pas pourquoi ce sont ces réponses et pas d'autres. Quelqu'un pourrait-il m'expliquer svp ?
    Je vous remercie d'avance!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 71
    Par défaut
    C'est assez simple.

    || signifie "OU"
    && signifie "ET"
    Tu peux assimiler le "OU" a + et le "ET" a x

    Donc

    a = 1, b = 1, c = 0, d = 0
    a || b && c || d = ? Réponse : 1

    1 + 1 x 0 + 0 = 1

    (a || b) && c || d = ? Réponse : 0
    (1+1) x 0 + 0 = 0

    a || ( b && c) || d = ? Réponse : 1
    1 + ( 1 x 0 ) + 0 = 1

    a || b && (c || d ) = ? Réponse : 1
    1 + 1 x ( 0 + 0 ) = 1

    Bien évidement ce qui change les réponse ici sont l'emplacement des parenthèse.

  3. #3
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Ces opérateurs servent habituellement à former des expressions logiques complexes. Par exemple (5 < 1) || (5 > 1). Cette expression vaut VRAI car la proposition 5 > 1 a la valeur VRAI. Mais en langage C, VRAI est représenté par 1 et FAUX par 0. Toutes les expressions logiques du C vallent donc 1 ou 0. Ansi, (5 < 1) vaut 0 et (5 > 1) vaut 1.

    De ce fait, il a été décidé que des entiers peuvent aussi dans une expression logique en C. Dans ce cas, un entier qui vaut 0 sera associé à FAUX et toute autre valeur (-20, -5, 1, 2, 3, ...) à VRAI. Mais une expression logique vaut toujours 1 ou 0. Ainsi, (5 && 4) vaut 1 et non 20, et (5 || 4) vaut 1 également et non 9.

    Enfin, comme tous les types arithmétiques (caractères, entiers, flottants, pointeurs) peuvent être convertis en entier, n'importe quel type arithmétique peut aussi figurer dans une expression logique. Dans ce cas, la même règle s'applique, 0 est associé à FAUX et toute valeure différente à VRAI.

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 8
    Par défaut
    Ah ok je vois. Ah ben merci pour la technique j'avais pas capté !

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo