☀️
420-1G2-HU Logique de programmation
  • 👋Bienvenue dans le cours de logique de programmation!
  • Bases de la logique de programmation
    • Concepts de la programmation
    • Les opérateurs
      • Exercices
    • Les commentaires
  • Les données
    • Les données et types simples
    • Les variables, les constantes et les opérations de base
    • Les opérations d'écriture et de lecture
    • Les opérations sur les chaînes de caractères
    • Laboratoire 1 - données
    • Laboratoire 2 - données
  • Les collections de données
    • Les listes
    • Les opérations sur les listes
    • Laboratoire listes - solution
    • Les dictionnaires
      • Exercices
  • Différents types de traitements
    • Structures logiques séquentielle
    • Structures logiques conditionnelles (if/else/elif)
    • Structures logiques répétitives (boucles)
      • Exercices de base
      • Laboratoire boucles - solution
  • Modularisation
    • Création et appels des fonctions
    • La documentation des fonctions
    • Annotation de types dans les fonctions
    • Laboratoire - fonctions (niveau débutant)
    • Révision express fonctions
    • Les modules
      • Laboratoire
  • La portée des variables
  • Débogage
    • 🫂Le débogueur, c'est ton ami!
      • Introductions aux outils de débogage
      • Techniques de débogage
    • Les erreurs et exceptions
      • Introduction aux notions d’erreurs
      • Les exceptions et leurs gestion
      • Exercices de base - avec solutions
      • Laboratoire débogage et gestion des erreurs -solution
  • Tests unitaires
    • Tests unitaires
    • Exercice
  • Cryptographie
    • Introduction à la cryptographie
  • Les fichiers
    • Accès aux fichiers
  • Résolution de problèmes
    • Résolution de problèmes : exercice introductif
    • Étapes d'analyse et de résolution de problèmes
  • Activités avec Légos
    • Introduction à la programmation
    • Consolidation sur les fonctions avec des blocs
    • Pratiquer les boucles avec des blocs
  • Laboratoires
    • Simulation combat - dragon vs chevalier
    • Simulateur de bataille - Les anneaux du pouvoir
    • Jeu de cartes
    • Lien logique mathématique
      • Algèbre de Boole
    • Crypto variée
    • Après Noël
  • git - système de gestion de versions
    • Introduction à Git
    • Étapes de création des dépôts Git
  • Classes inversées
    • Résolution de problèmes, fonctions et traitements conditionnels
  • Examens
    • Examen 2 - 2023
    • Examen 3 - 2023
    • Examen 2 - 2024
  • Révision
    • Fonctions, gestion d'erreurs et tests unitaires
    • Résolution de problème
  • Trucs utiles
    • Check-list
Powered by GitBook
On this page
  • But
  • Code fourni
  • Énoncé
  • Questions
  • Contraintes
  • Annexe
  • Passage Algèbre de Boole -> Expressions booléennes en prog
  • Exemples : Proposition (Algèbre Boole) -> Expressions en prog
  • Quelques rappels
  1. Laboratoires
  2. Lien logique mathématique

Algèbre de Boole

PreviousLien logique mathématiqueNextCrypto variée

Last updated 6 months ago

But

  • Lier les concepts vus en logique mathématique et en logique de programmation et sécurité.

  • Renforcer la compréhension des expressions logiques en programmation et des concepts de base de l'Algèbre de Boole.

  • Manipuler des fonctions sur les chaînes de caractères et d'autres fonctions intégrées de Python.

  • Utiliser des tuples.

Algèbre de Boole vs expressions logique en prog

L'algèbre de Boole fournit la base de la logique conditionnelle en programmation, en utilisant

  • des valeurs binaires

  • des opérateurs logiques (ET, OU, NON)

pour structurer les décisions et simplifier les conditions.

Les exemples de ce laboratoire sont tirés d'exercices du cours de logique mathématique fournis par Murray Sylvie.

Code fourni

Énoncé

Vous êtes un étudiant et dans votre cours de logique mathématique vous avez vu l'Algèbre de Boole. Vous souhaitez créer un programme qui vous permettra de valider quelques notions comme la tautologie, la contradiction, l'équivalence et l'implication.

Questions

Fonctionnalités du programme

  • Programmer les différentes opérations (avec des fonctions).

  • Utiliser votre programme pour vos vérifications.

Déroulement :

  • Deux (2) propositions seront entrées par l'étudiant.

  • Transformer les propositions (maths) en expression logique (Python) :

    • On doit d'abord vérifier que l'expression entrée est bien une proposition d'Algèbre de Boole.

  • Évaluer l'expression pour toutes les combinaisons de p et q.

    • Bonus : afficher la table de vérité de chaque proposition en option dans le programme.

  • Pour chaque proposition entrée on dit :

    • S'il s'agit d'une tautologie, une contradiction ou aucun des deux.

  • Vérifier si les deux propositions entrées sont équivalentes.

  • Vérifier si la première proposition implique la deuxième et inversement.

Tests unitaires

  • Complétez les tests unitaires pour toutes vos fonctions.

  • Limitez vous à 2 ou 3 jeux de données (ou plus selon leur pertinence) pour chaque test.

Contraintes

  • Travailler sur le projet fourni.

  • On travaillera uniquement avec les propositions ayant p et q.

  • Utiliser des tuples pout les valeurs de vérité (0, 1).

  • Utiliser des fonctions sur les chaînes de caractères pour remplacer des caractères, trouver les caractères alphabétiques, etc. Voir la doc suivante :

  • Utiliser les fonctions suivantes : all(liste_bool) et eval(exp_str) . Voir la doc suivante :

Annexe

Passage Algèbre de Boole -> Expressions booléennes en prog

Algèbre de Boole
Expression logiques (booléennes) en prog

Propositions

p, q, r, s

simples variables p, q, r, s

Valeurs de vérité

{0, 1}

valeurs entières 0 et 1 (représentent False et True)

OU

+

or

ET

.

and

Négation

not

Exemples : Proposition (Algèbre Boole) -> Expressions en prog

Proposition (maths)
Proposition dans prog (str)
Expressions booléenne en Python

"|p . q"

not p and q

"|(p + q)"

not (p or q)

"(p . q) . |(p + q)"

(p and q) and not(p ou q)

Quelques rappels

  • Tautologie : la proposition est universellement vraie dans tous les cas possibles.

  • Contradiction : la proposition ne peut jamais être vraie, peu importe les valeurs des variables.

  • Equivalence ( P <--> Q) : Vraie (1) lorsque les deux propositions P et Q ont la même valeur de vérité. Faux (0) sinon.

  • Implication ( P ->Q ) : Tout le temps vraie (1), sauf quand P est vraie et Q est fausse.

La barre sera remplacée par | dans le programme.

Built-in Types — Python 3.10.7 documentation
Logo
Built-in Functions — Python 3.10.2 documentation
Logo
2KB
logique_maths.zip
archive