CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Aide exo de logique

_Aleas_
_Aleas_
Niveau 31
08 décembre 2016 à 22:07:29

Bonsoir, j'ai un TP à rendre ce soir donc j'espère qu'une âme charitable veuille bien m'aider sur un exo :noel:
Déjà, j'ai le bout de code suivant :

// ... if((x & y) | !(!x | z)) {
w = y | !z;
}
else if((x & z) | (y & (x | z))) {
w = x | y;
}
else {
w = !x & !y;
} // ...

Le but de l'exo est de donner une formule de logique propositionnelle équivalente à cette portion de code, puis de la simplifier afin de réécrire le tout avec une seule instruction else, tout en préservant un comportement identique.
J'ai déjà bien simplifié tout ça en utilisant les lois de Morgan, la précédence (priorité des opérateurs), et la relation sur l'implication : "x implique y", c'est équivalent à "non(x) ou y". Mais maintenant, je suis bloqué... je ne vois pas comment transformer tout ça en un seul bloc else, notamment à cause du fait qu'on est en présence de 3 affectations de la variable w :(

Message édité le 08 décembre 2016 à 22:08:10 par _Aleas_
ben64100
ben64100
Niveau 6
08 décembre 2016 à 22:22:57

Inverse la proposition dans ton else "w = !x & !y;" tu devrais comprendre ensuite.

_Aleas_
_Aleas_
Niveau 31
08 décembre 2016 à 22:30:43

Ouais, on obtient "w = !(x | y)" ce qui est la négation de la valeur qu'on affecte à w dans le 1er bloc else mais du coup, je vois pas comment on peut regrouper en un seul bloc else...

Pseudo supprimé
Pseudo supprimé 08 décembre 2016 à 22:35:36

Tableau de Karnaugh? Après De Morgan t'as une """somme""" donc ça marche bien avec Karnaugh.

_Aleas_
_Aleas_
Niveau 31
08 décembre 2016 à 22:38:02

Peut-être que l'affectation de w dans le nouveau bloc else pourrait être : "w = x | y | !(x | y)" mais ça me semble superflu :(

_Aleas_
_Aleas_
Niveau 31
08 décembre 2016 à 22:40:21

Le 08 décembre 2016 à 22:35:36 Asayakez a écrit :
Tableau de Karnaugh? Après De Morgan t'as une """somme""" donc ça marche bien avec Karnaugh.

C'est pas le but de l'exo malheureusement, faut juste tout réécrire avec des formules propositionnelles mais le symbole de l'affectation me gêne beaucoup après...

Grimmys
Grimmys
Niveau 19
08 décembre 2016 à 22:49:09

Juste, c'est quel langage sinon ? :(

AlphaCygni
AlphaCygni
Niveau 10
08 décembre 2016 à 22:55:11

Ton premier et deuxième cas reviennent juste à faire w=1, tu peux les regrouper. Au final j'ai l'impression que ça te donne :
if (!x & y & !z) then w=0 else w=1
je garantis rien je suis sur mobile et j'ai fait de tête

_Aleas_
_Aleas_
Niveau 31
08 décembre 2016 à 23:04:22

Le 08 décembre 2016 à 22:49:09 Grimmys a écrit :
Juste, c'est quel langage sinon ? :(

ça a l'air d'être du C mais c'est pas dit en tout cas :hap:

Le 08 décembre 2016 à 22:55:11 AlphaCygni a écrit :
Ton premier et deuxième cas reviennent juste à faire w=1, tu peux les regrouper. Au final j'ai l'impression que ça te donne :
if (!x & y & !z) then w=0 else w=1
je garantis rien je suis sur mobile et j'ai fait de tête

Chaud je suis à côté de la plaque alors. Le truc, c'est qu'il faut tout réduire avec une énorme formule propositionnelle :noel:

_Aleas_
_Aleas_
Niveau 31
08 décembre 2016 à 23:45:47

AlphaCygni :d) t'avais effectivement raison. Je viens de tester avec un programme en C et avec toutes les possibilités de la table de vérité (donc 2^3=8), ça donne les mêmes résultats que ton bout de code :oui:

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment